Robot programming support device, robot programming support program, and robot programming support method
The robot programming support device and method effectively prevent bugs in parallel operation programs by identifying and warning about target duplicate devices, facilitating efficient program creation through real-time conflict detection and highlighting.
Patent Information
- Application Number
- JP2021201852
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-12-13
- Publication Date
- 2026-01-09
- Estimated Expiration
- 2041-12-13
AI Technical Summary
Creating programs for parallel operation of multiple devices, such as robots, often results in bugs that are only discovered during installation, requiring significant time and effort to fix, as existing methods like adding message discrimination information are insufficient for quickly identifying and fixing bugs in parallel operation programs.
A robot programming support device and method that includes a device extraction unit, determination unit, and warning unit to identify and warn about target duplicate devices in parallel operation programs, using a parallel operation programming support package to highlight potential conflicts and provide information on device behaviors.
Enables early detection and prevention of bugs in parallel operation programs, allowing for efficient creation of programs by highlighting potential conflicts and providing real-time warnings, thus reducing the time and effort required to resolve issues.
Smart Images

Figure 0007796519000001 
Figure 0007796519000002 
Figure 0007796519000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to programming for controlling devices, including robots, to operate in parallel. [Background technology]
[0002] Devices such as robots and cameras are widely used in fields such as logistics, delivery, assembly, and food production. For example, in order to shorten the cycle time of work using robots, multiple robots are operated in parallel.
[0003] Although Patent Document 1 does not target parallel operations related to robots, it discloses a method for analyzing the operation of a parallel program. According to Patent Document 1, the operating status of an actual parallel program can be visually monitored. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Publication No. 8-328897 Summary of the Invention [Problem to be solved by the invention]
[0005] When multiple devices (for example, multiple robots) are operated in parallel, a special program is created for parallel operation. However, when programming parallel operation, it is possible to create a program that contains bugs specific to parallel operation, such as a command to move multiple robots to the same location at the same time. Unlike simple bugs such as syntax errors in the program, these bugs are often only discovered when the program is installed and run on each robot. Therefore, it takes a lot of time and effort to discover and fix parallel operation bugs.
[0006] Patent Document 1 claims that adding message discrimination information to each message sent and received between programs that make up a parallel program makes it possible to efficiently identify bugs in the program. However, when creating a program that enables parallel operation of multiple devices, there is a need for a mechanism that allows programmers to more quickly find locations where bugs are likely to occur and fix them flexibly.
[0007] The present disclosure has been made in view of the above circumstances, and its purpose is to effectively prevent bugs in programs related to parallel operation of multiple devices. [Means for solving the problem]
[0008] The problem to be solved by the present disclosure is as described above. Next, the means for solving this problem and the effects thereof will be described.
[0009] According to a first aspect of the present disclosure, there is provided a robot programming support device having the following configuration. That is, this robot programming support device supports programming for a program that causes multiple devices, including at least a robot, to operate in parallel. The robot programming support device includes a device extraction unit, a determination unit, and a warning unit. The device extraction unit extracts, for each unit of parallel operation, an identification name of a device to which an operation command is to be issued, based on the contents of the program description. The determination unit determines whether or not there is a target duplicate device. The target duplicate device is a device in which an operation command is issued in two or more parallel operations targeting the same device. The warning unit outputs a warning when it is determined that there is a target duplicate device.
[0010] According to a second aspect of the present disclosure, there is provided a robot programming support program having the following configuration: That is, this programming support program is for supporting programming of a program for operating a plurality of devices including at least a robot in parallel. Support devices include: Follow these steps: make it happenThat is, in the first step, based on the contents of the program description, the identification names of the devices to which operation commands are to be issued are extracted for each unit of parallel operation. In the second step, it is determined whether or not there are any target duplicate devices. In the third step, if it is determined that there are any target duplicate devices, a warning is output.
[0011] According to a third aspect of the present disclosure, there is provided a robot programming support method having the following configuration. That is, this programming support method supports programming of a program that causes a plurality of devices, including at least a robot, to operate in parallel. In this robot programming support method, based on the contents of the description of the program, an identification name of a device to which an operation command is to be issued is calculated as follows: The computer Extraction is performed for each unit of parallel operation. The computer If it is determined that there is a target duplicate device, The computer Prints a warning.
[0012] These features allow users to easily notice bugs that cause unacceptable conflicts between operation commands during the programming stage, based on warnings, and as a result, programs related to parallel operations can be created efficiently. [Effects of the Invention]
[0013] According to the present disclosure, it is possible to effectively prevent bugs in programs related to parallel operation of multiple devices. [Brief explanation of the drawings]
[0014] [Figure 1] 1 is a schematic diagram illustrating a parallel programming device according to an embodiment of the present disclosure and a parallel operating system to be programmed; [Figure 2] FIG. 10 is a diagram showing an example of a parallel operation program. [Figure 3] Architecture diagram of the editor program. [Figure 4]10 is a flowchart illustrating processing performed in a robot programming support program. [Figure 5] FIG. 10 is a schematic diagram showing a warning issued in an editor program. DETAILED DESCRIPTION OF THE INVENTION
[0015] Next, the disclosed embodiments will be described with reference to the drawings. Fig. 1 is a schematic diagram illustrating a parallel programming device 10 according to an embodiment of the present disclosure and a parallel operation system 50 that is the target of programming. Fig. 2 is a diagram showing an example of a parallel operation program. Fig. 3 is an architecture diagram of an editor program.
[0016] 1, a parallel programming device 10 serving as a robot programming support device includes a control unit 11, an input unit 12, and a display unit 13. The parallel programming device 10 is realized by, for example, a desktop or notebook personal computer.
[0017] The control unit 11 is a computer main body and includes a CPU, RAM, a large-scale storage device, etc. The configuration of the control unit 11 will be described in detail later. The input unit 12 includes, for example, a mouse, a keyboard, etc. The display unit 13 can graphically display various information such as an editor screen, which will be described later.
[0018] An editor program for creating programs is installed in the parallel programming device 10. The editor program is a window application with a GUI. GUI is an abbreviation for Graphical User Interface. When the editor program is started, an editor window is displayed on the display unit 13. In this state, the user operates the input unit 12 to create and edit a program for parallel operation. As the editor program, for example, a well-known program called an integrated development environment (IDE) can be used.
[0019] A user can create a parallel operation program by operating the parallel programming device 10. This parallel operation program is used to operate a parallel operation system 50 shown in Fig. 1. This parallel operation system 50 includes a first-arm robot 51, a second-arm robot 52, and a camera 53.
[0020] The parallel operation program can be written using a known programming language. In this embodiment, Python is used, but the language is not particularly limited.
[0021] A parallel operation program contains parallel operation blocks. Figure 2 shows an example of a simple parallel operation program displayed in an editor window. Part of the program shown in Figure 2 contains a parallel operation block. The parallel operation block corresponds to lines 7 to 13 of the program. Hereinafter, the concept of a unit of parallel execution may be referred to as a thread.
[0022] 2 is executed, a movement command to position A is issued to the first arm type robot 51 in line 6. After the movement operation of the first arm type robot 51 to position A is completed, the two threads of the parallel operation block are started substantially simultaneously.
[0023] The parallel operation block includes processing for two threads.
[0024] The operation of the first thread is defined in lines 8 and 9, which are the indented block immediately following the if statement on line 7. As indicated by the condition of the if statement, the thread index number of the first thread is 0. In the first thread, a movement command to position B is issued to the first arm type robot 51 on line 8. After the movement operation of the first arm type robot 51 to position B is completed, a shooting command is issued to the camera 53 on line 9. When the operation of the shooting command for the camera 53 is completed, the processing of the first thread is completed.
[0025] The operation of the second thread is defined in lines 12 and 13, which are the indented block immediately following the elif statement on line 11. As indicated by the condition of the elif statement, the thread index number of the second thread is 1. In the second thread, a movement command to position C is issued to the first arm type robot 51 on line 12. After the movement operation of the first arm type robot 51 to position C is completed, a movement command to position D is issued to the second arm type robot 52 on line 13. When the movement operation of the second arm type robot 52 to position D is completed, the processing of the second thread is completed.
[0026] When both of the two threads are completed, the processing of the parallel operation block is completed.
[0027] When the processing of the parallel operation block is completed, a movement command to position E is issued to the second-arm type robot 52 on line 14. When the movement operation of the second-arm type robot 52 to position E is completed, all processing of the program is completed.
[0028] A user creates a program such as that shown in FIG. 2 using the parallel programming device 10 in which an editor program is installed.
[0029] Editor programs have functions called extensions. By using extensions, users of editor programs can add special functions that the editor program does not have. The user instructs the editor program to install an extension function and specifies a package file. A package file is a file that combines multiple files used to add functions to an editor program. This allows the extended functions of the package to be applied to the editor program. Hereinafter, this package may be referred to as a function-adding package.
[0030] The function addition package includes a program file written in a known programming language, such as, but not limited to, TypeScript or JavaScript.
[0031] In this embodiment, a parallel operation programming support package is applied to the editor program. The parallel operation programming support package is a type of the above-mentioned function addition package. As will be described in detail later, this support package has a function that points out parts that may become bugs in a program that the user is editing with the editor. Such a function is sometimes called a linter function. The parallel operation programming support package is created, for example, by the manufacturer of the first-arm type robot 51 and the second-arm type robot 52. The user can obtain the package file, for example, by downloading it from a website.
[0032] 3 is an example of an architecture diagram of an editor program. When the editor program is executed in the parallel programming device 10, a main process 41 and an extension host process 42 are started in the parallel programming device 10.
[0033] The main process 41 executes a main program 46. The main program 46 provides the basic functions of an editor program, such as creating, reading, and saving program files. The main program 46 also provides functions related to editing program files, such as moving the editing position (caret), inserting a character string at the editing position, selecting a character string, and deleting a character string.
[0034] The extension host process 42 is a process for realizing the extension function. When the above-mentioned function addition package is installed in the editor program, the robot programming support program 47 included in the package is executed in the extension host process 42. Hereinafter, this program may be simply referred to as the support program.
[0035] The support program 47 describes processes for realizing the parallel block identification unit 21, device extraction unit 22, determination unit 23, warning unit 24, and behavior storage unit 25 shown in FIG.
[0036] The parallel block identifying unit 21 identifies the portion where the parallel operation block is described based on the description of the program being edited by the editor program.
[0037] The device extraction unit 22 extracts, for each thread, a device to which an operation command is to be issued, based on the description of the parallel operation block identified by the parallel block identification unit 21.
[0038] The determination unit 23 determines whether operation commands are issued from multiple threads to the same device. Hereinafter, when operation commands are issued in parallel to the same device, the device may be referred to as a target overlap device. The above determination can also be rephrased as a determination as to whether a target overlap device exists. The determination by the determination unit 23 is made based on the extraction result by the device extraction unit 22.
[0039] If there is a target overlapping device, the warning unit 24 warns the user by displaying a message in the editor program.
[0040] The behavior storage unit 25 stores, for each device type, information on how a device will behave when operation commands are issued in parallel to the same device. This information is used by the warning unit 24 to issue a warning.
[0041] The editor program API 43 shown in Figure 3 is an API made public by the editor program. API is an abbreviation for Application Programming Interface. Programs on the extension side can use some of the functions of the editor program via this API.
[0042] The processing of the support program 47 installed as a function addition package will be described with reference to the flowchart in Fig. 4. The flow shown in Fig. 4 is executed each time the contents of the program are changed in the editor window.
[0043] When the process starts, as shown in step S101, the contents of the program currently being input into the editor program (in other words, text data) are acquired. As a result, for example, text data corresponding to the program shown in FIG. 2 is obtained. The acquisition of the text data can be realized by the assistance program 47 calling the editor program API 43.
[0044] Next, as shown in step S102, the text data is analyzed as appropriate. Based on this analysis, the positions of parallel operation blocks included in the program are identified. The analysis in step S102 further identifies the start and end lines of all threads. In accordance with the example of FIG. 2, the processing in step S102 identifies that the number of threads executed in parallel is two, that the thread with index number 0 (first thread) is from line 8 to line 9, and that the thread with index number 1 (second thread) is from line 12 to line 13. This processing can be realized using an appropriate text processing technique, such as regular expressions.
[0045] Next, as shown in step S103, for all threads, the system examines each line from the start line to the end line of each thread, extracting the names of devices to which operation commands are issued in that thread and obtaining a set with no duplicates. For example, from the statement "arm1.move(posB)" on line 8, "arm1" is extracted as the device name. This extraction process can be achieved, for example, by extracting character strings that match an appropriate regular expression from each line.
[0046] As a result of this processing, for the first thread, lines 8 and 9 of Figure 2 are examined, resulting in {arm1, camera} being obtained as a set of devices, and for the second thread, lines 12 and 13 of Figure 2 are examined, resulting in {arm1, arm2} being obtained as a set of devices. In a program, a set can be represented by, for example, an array variable.
[0047] Next, as shown in step S104, it is determined whether the devices included in the above set obtained for each thread are included in the sets of other threads. This determination can be easily made by checking the elements that are commonly included in the two array variables. In the above example, arm1, which is included in the set obtained for the first thread, is also included in the set obtained for the second thread.
[0048] In step S104, it is also possible to determine whether there is device duplication based on whether the sum of the device numbers in the sets obtained for each thread matches the number of devices in the union of all threads. In the above example, the sum of the device numbers in the sets for each thread is 2 + 2 = 4. On the other hand, the union of all threads is {arm1, arm2, camera}, and the number of devices is 3. Since the two do not match, it is determined that there is one or more overlapping devices to which commands are issued among multiple threads.
[0049] If the result of the determination in step S104 is that there is at least one overlapping device for which an operation command is to be issued between threads, this means that operation commands are being issued in parallel from two or more threads to the same device. If such overlapping devices exist, there is a high possibility that multiple operation commands will conflict, so a warning is displayed in the editor window as shown in step S105.
[0050] The warning can be issued, for example, by highlighting a line indicating a process of issuing an operation command to the target overlap device (here, arm1) in an appropriate manner in the editor window displayed on the display unit 13. A specific example of the warning is shown by the highlighted portion 61 in FIG. 5. In the example of FIG. 5, the highlighting is achieved by adding a dashed underline, but any method of highlighting can be used. For example, the highlighting can be achieved by making the color of the text itself different from the rest, or by displaying a warning mark on the left side of the line. The text decoration for highlighting can be performed by the support program 47 calling the editor program API 43.
[0051] If there is no target overlapping device, the process of step S105 is skipped.
[0052] In this embodiment, when the warning display in step S105 is performed, if the user operates the input unit 12 to move the mouse cursor over the highlighted portion 61, a pop-up window 62 is displayed in a position near the highlighted portion 61, as shown in Fig. 5. The pop-up window 62 displays, for example, a simple sentence explaining the contents of the warning. In this way, a warning can also be realized by displaying a message.
[0053] The above warning allows the user to realize early on that, for example, the "arm1" part on line 12 of the program in Figure 2 may be a bug that causes unexpected events during parallel operation.
[0054] 5, a button 63 for ignoring the warning is displayed in the pop-up window 62. Clicking this button 63 removes the highlighting and closes the pop-up window, after which the command conflict warning for that portion will no longer be displayed.
[0055] Here, the actual behavior of a device when multiple conflicting operation commands are issued to the same device will be described.
[0056] Below, we will explain the case where the device is a robot (for example, a first-arm type robot 51). For example, consider a case where a robot is at point P, a thread issues a movement command to the robot to point A, and then, before the robot completes its movement based on the command, another thread issues a movement command to the same robot to point B. The behavior of the robot in this case can be roughly divided into the following three types.
[0057] In the first type, even if a command to move to point B is issued, the robot will not start moving to point B until it has moved to point A. After completing its movement to point A, the robot moves to point B in accordance with the command to move to point B. In this way, multiple conflicting operation commands are executed sequentially in the order in which they were received. Hereinafter, a device that exhibits this type of behavior may be referred to as a sequential execution type.
[0058] In the second type, when a command to move to point B is issued, a robot that was in the middle of moving to point A changes its destination from point A to point B and immediately starts moving to point B. In other words, the command to move to point A is discarded midway. Hereinafter, devices that exhibit this type of behavior may be referred to as the overwrite type.
[0059] In the third type, when a command to move to point B is issued, a robot that is in the middle of moving to point A immediately stops due to an error. However, it is also possible for the robot to stop due to an error after completing the movement to point A. Hereinafter, devices that exhibit this type of behavior may be referred to as error types.
[0060] As shown in Fig. 5, the message displayed in the above-mentioned pop-up window 62 includes an explanation of the type of behavior the robot will exhibit. The message in the pop-up window 62 in Fig. 5 shows an example in which the robot "arm1" is of the overwrite type.
[0061] A link 64 is also displayed in the pop-up window 62. When the user operates the input unit 12 to click the link 64, a help window 65 is displayed separately. The link 64 may be displayed in any format, for example, in the form of a button. This allows the user to better understand the behavior of the device in the event of a command conflict through the explanation in the help window 65, and to appropriately determine, for example, whether or not to ignore the warning.
[0062] Next, we will explain the case where the device is a camera. For example, consider the case where a camera is performing a shooting operation in accordance with a first shooting command issued from one thread, and a second shooting command is issued from another thread. The behavior of the camera in this case can be roughly divided into the following three types.
[0063] In the first type, even if a second shooting command is issued, the camera does not start the second shooting until shooting based on the first shooting command is completed. After the first shooting is completed, the camera immediately starts shooting based on the second shooting command. This type can be called the sequential execution type mentioned above.
[0064] In the second type, even if a second shooting command is issued, the camera does not interrupt shooting based on the first shooting command. After the first shooting is completed, the second shooting command is immediately accepted, but a second shooting is not performed. The shooting results for the second shooting command are the same as the shooting results for the first shooting command. Hereinafter, devices that exhibit this type of behavior may be referred to as merging types.
[0065] In the third type, when the second shooting command is issued, the camera that was in the middle of shooting based on the first shooting command immediately stops due to an error. This type can be called the error type mentioned above.
[0066] In this embodiment, the manufacturer of each device, such as a robot, creates the information necessary to control the robot in advance in the form of a module file and provides it to the user. A module file is a program created with the assumption that it will be used by other programs.
[0067] Although not shown in the figure, this module file contains class definitions. A class is a collection of variables and functions required to represent something (in this case, each device). For example, the "Arm" module file contains the definition of the "Arm" class, which is a class related to arm-type robots. The "Camera" module file contains the definition of the "Camera" class, which is a class related to cameras. Class definitions include function definitions and the specification of parameters required for each function. Functions defined within a class are called methods. For example, the "Arm" class definition contains the content of the "move" method, which is responsible for issuing a movement command.
[0068] The class definition written in the module file also describes information about the type of behavior the robot will exhibit when a command conflict occurs.
[0069] The provided module file is loaded by the import statement on line 1 of the program in Figure 2. Lines 2 to 4 of the program instantiate the required number of instances based on the class (two for the Arm class, one for the Camera class). A class is sometimes likened to a blueprint, but instantiation means generating actual data in the computer's memory based on the class. During instantiation, an object name (identification name), such as "arm1," is assigned to each instance (also called an object). As shown in lines 6 and 9 of the program in Figure 2, executing the object's method issues the corresponding operation command to the device.
[0070] The name of the device to which the command is issued, explained in step S103 above, essentially means the name of the object on which the method is executed.
[0071] The assistance program 47 refers to the class definition of the object to obtain information about the type of behavior that the device related to the warning will exhibit in the event of a command conflict. Based on the information thus obtained, the assistance program 47 can display the type of behavior in the pop-up window 62 shown in Figure 4. This allows useful information to be presented to the user.
[0072] As described above, the flow shown in Figure 4 is executed each time an editing operation is performed in the editor window. Therefore, if "arm1" on line 12 of Figure 2 is changed to "arm2" in the editor, the highlighted portion 61 in Figure 5 will immediately disappear. Furthermore, if "arm2" is changed back to "arm1" in the editor, the highlighted portion 61 will reappear as shown in Figure 5. The time from when an editing operation is performed in the editor window until the warning is displayed or disappears is sufficiently short, for example, less than one second. In this way, the real-time display of the warning is essentially ensured, allowing the user to notice the possibility of a program bug at an extremely early stage.
[0073] As described above, the parallel programming device 10 of this embodiment assists in programming a program for operating multiple devices in parallel, including a first-arm robot 51 and a second-arm robot 52. The parallel programming device 10 includes a device extraction unit 22, a determination unit 23, and a warning unit 24. The device extraction unit 22 extracts, for each unit of parallel operation, the object names of devices to which operation commands are to be issued, based on the contents of the program description. The determination unit 23 determines whether or not there is a target overlap device. A target overlap device is a device for which operation commands are issued in two or more parallel operations targeting the same device. The warning unit 24 outputs a warning when it is determined that there is a target overlap device.
[0074] This allows the user to easily notice bugs that cause unacceptable conflicts between operation commands during the programming stage based on the warning, thereby enabling efficient creation of programs related to parallel operations.
[0075] The parallel programming device 10 of this embodiment includes a parallel block identification unit 21 that identifies parallel operation blocks in a program in which parallel device operations are described, based on the contents of the program description. A device extraction unit 22 extracts, for each unit of parallel operation, the object names of devices to which operation commands are issued from the parallel operation description portion.
[0076] This allows an appropriate warning to be issued to parts of the program that operate in parallel.
[0077] The parallel programming device 10 of this embodiment includes a behavior storage unit 25 that stores, for each class, information about the behavior of a device when multiple operation commands are issued in parallel to the same device. The pop-up window 62 output by the warning unit 24 to issue a warning contains information about the behavior of the device when multiple operation commands are issued in parallel.
[0078] This allows the user to easily understand the behavior of the device when conflicting operation commands occur, and to respond to the warning.
[0079] In the parallel programming device 10 of this embodiment, the warning issued by the warning unit 24 includes highlighting a part of the program that specifies the target overlapping device (arm1 in the example of FIG. 5).
[0080] This allows the user to easily focus on areas where there is a high probability of a bug.
[0081] In the parallel programming device 10 of this embodiment, the warning unit 24 issues a warning substantially in real time in response to changes in the contents of the program.
[0082] This allows users to become aware of potential bugs earlier.
[0083] Although the preferred embodiment of the present disclosure has been described above, the above configuration can be modified, for example, as follows. A single modification may be made, or multiple modifications may be made in any combination.
[0084] Instead of displaying the warning message in the pop-up window 62, the warning message may be displayed in a separate pane of the editor window, for example.
[0085] The number and type of devices constituting the parallel operation system 50 are arbitrary. The type of robot for which parallel operation is programmed is not limited, and may be, for example, an arm type, a hand type, a cart type, etc. The object for which parallel operation is programmed may include other sensors such as a laser scanner instead of or in addition to a camera.
[0086] The behavior of a device when there is a conflict between operation commands can be described for each object instead of in a class definition. In other words, the behavior of a device when there is a conflict between operation commands can be described for each individual device instead of for each device model.
[0087] The function of detecting and warning about a target duplicate device may be provided in the main program 46 instead of the support program 47 .
[0088] The content of the warning message is arbitrary. For example, the warning message could be, "This process conflicts with another process, and may result in unintended behavior when executed." The message may also include a display (for example, a line number) identifying the line that conflicts with the highlighted line.
[0089] The functions of the elements disclosed herein can be performed using circuits or processing circuitry, including general-purpose processors, special-purpose processors, integrated circuits, ASICs (Application Specific Integrated Circuits), conventional circuits, and / or combinations thereof, configured or programmed to perform the disclosed functions. A processor is considered a processing circuit or circuitry because it includes transistors and other circuitry. In this disclosure, a circuit, unit, or means is hardware that performs the recited functions or hardware that is programmed to perform the recited functions. The hardware may be hardware disclosed herein or other known hardware that is programmed or configured to perform the recited functions. Where the hardware is a processor, which is considered a type of circuit, the circuit, means, or unit is a combination of hardware and software, and software is used to configure the hardware and / or processor. [Explanation of symbols]
[0090] 10 Parallel programming device (robot programming support device) 21 Parallel Block Identification Part (Identification Part) 22 Device Extraction Unit 23 Judgment section 24 Warning section 25 Behavior Memory Unit
Claims
1. 1. A support device for supporting programming of a program for operating multiple devices including at least a robot in parallel, comprising: a device extraction unit that extracts, for each unit of parallel operation, an identification name of a device to which an operation command is to be issued based on the contents of the program description; a determination unit that determines whether or not there is a target overlapping device, which is a device when operation commands are issued in two or more parallel operations targeting the same device; a warning unit that outputs a warning when it is determined that the target duplicate device exists; A robot programming support device comprising:
2. 2. The robot programming support device according to claim 1, an identifying unit that identifies a parallel operation description portion in the program in which parallel operation of devices is described based on the description content of the program; The device extraction unit extracts, from the parallel operation description portion, an identification name of a device to which an operation command is to be issued, for each unit of parallel operation.
3. 3. The robot programming support device according to claim 1, a behavior storage unit that stores information about the behavior of a device when a plurality of operation commands are issued in parallel to the same device, for each device or for each model of the device; A robot programming support device, wherein the warning output by the warning unit includes information about the behavior of the device when multiple operation commands are issued in parallel.
4. 4. The robot programming support device according to claim 1, The warning by the warning unit includes highlighting a portion of the program that specifies the target duplicate device.
5. 5. The robot programming support device according to claim 1, The warning unit issues a warning substantially in real time in response to changes in the content of the program.
6. A support device for supporting programming of a program for operating a plurality of devices including at least a robot in parallel, extracting, for each unit of parallel operation, an identification name of a device to which an operation command is to be issued based on the contents of the program description; determining whether there is a target overlapping device, which is a device when operation commands are issued in two or more parallel operations targeting the same device; outputting a warning when it is determined that there is a target duplicate device; A robot programming support program that allows you to:
7. A programming support method for supporting programming of a program for operating multiple devices including at least a robot in parallel, comprising: The computer extracts, for each unit of parallel operation, an identification name of a device to which an operation command is to be issued based on the contents of the description of the program; The computer determines whether there are overlapping devices to which operation commands are issued in a plurality of parallel operations for the same device; The robot programming support method further comprises: a computer outputting a warning when it is determined that there is a target duplicate device.
Citation Information
Patent Citations
Analysis method and device for operation of parallel program
JP1996328897A
Operation program preparation supporting method and operation program preparing device
JP2008142788A
Command display device of numerical control program, and command display program
JP2011123667A
Program manufacturing method and program display method
JP2020095453A
Robot control system and control method
JP2021144588A