Robot control device and robot control method
Through the parallel call command detection and execution unit, the problem of mismatch between the operation and logical command processing time in the robot control device is solved, and high-precision processing of time and distance is achieved, and the efficiency and speed constant of the robot's movement are improved.
Patent Information
- Application Number
- CN202011245125.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-11-20
- Filing Date
- 2020-11-10
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2040-11-10
AI Technical Summary
In the prior art, when the robot control device executes the action command and the logic command, there is a problem of mismatch in processing time, which leads to an inconstant operation speed and makes it difficult to achieve high-precision processing in time and distance.
The parallel call command detection unit and the parallel call command execution unit are used to read the action command program, detect the line of the parallel call command, and execute the parallel call command at a specified timing, and execute the subroutine in parallel independently of the execution context of the action command.
High-precision processing in time and distance is realized, the number of teaching points is reduced, the planning and processing efficiency of robot actions is improved, and logical commands can be executed in parallel with action commands to maintain the constant action speed.
Smart Images

Figure CN112824058B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a robot control device and a robot control method. Background Art
[0002] When a robot is in use, it exchanges input and output signals with peripheral equipment such as tools and welding machines at the front end of the robot arm to facilitate processing. Therefore, the robot program contains both motion commands for manipulating the robot arm and logic commands for calculations and communication with peripheral equipment.
[0003] In current control devices, when manipulator motion commands, input / output, calculation and other logic processing commands (or subroutine calls) coexist within a robot program, processing is performed by sequentially executing each command.
[0004] Figure 5 This shows an example of a program used when executing commands sequentially. Figure 5 As shown in the example, in each line in the program, an action command or a logic processing command can be specified. When the control device executes the program, the commands are executed sequentially (sequentially) in such a way that the next line is executed after the execution of the command of one line is completed.
[0005] In this regard, the following technology is known: a cloud terminal connected to a Web server is used to generate a script for causing the robot to move sequentially by synchronizing an image displayed on the touch panel display of the robot, text output through sound synthesis via a speaker, and action settings of specified parts of the robot (for example, refer to patent document 1).
[0006] Prior art literature
[0007] Patent Literature
[0008] Patent Document 1: Japanese Patent No. 6067905 Summary of the Invention
[0009] Problems to be solved by the invention
[0010] Depending on the application (application example) in which the robot is used, logic command processing may take time, and if executed sequentially, this may result in insufficient processing time. Specifically, if the execution of the next line of logic commands begins immediately after the execution of a motion command, and if logic processing takes time, the robot may have moved past the position (or time) it was originally supposed to process, and peripheral equipment may be processing the command, potentially adversely affecting the quality of the processing results.
[0011] In addition, if the logic command is processed instantaneously during the acceleration and deceleration of the robot, the robot's movement speed can be kept roughly constant while the logic command is processed. However, if the processing of the logic command takes time, the execution of the next movement command will be delayed, so it may not be possible to keep the movement speed constant.
[0012] In addition, depending on the application, it may be necessary to perform detailed processing in several steps during the robot movement near the taught position before and after a certain process. If the robot motion and logic commands are executed sequentially, there may be situations that cannot be handled well.
[0013] For example, in order to use a paint spray gun in a robot for painting, it is necessary to sequentially perform the following processes with a precision of several milliseconds: (1) starting the discharge of pressurized air to atomize the paint, (2) starting the application of voltage to electrostatically charge the paint, and (3) opening the valve to spray the paint, just before the robot reaches the spraying position (approximately one second or less). These processes need to be performed in parallel with the robot's operation. It is difficult to perform these processes in parallel with the robot's operation through a user program.
[0014] Figure 6A An example of a program for executing a coating operation is shown. Figure 6B An example of additional teach points required to perform a coating start sequence is shown. Figure 6A as well as Figure 6B As shown in the example, for the purpose of starting the coating sequence alone, it is necessary to teach the teaching points P
[51] and P
[52] that are not originally necessary, and the accuracy of time and distance are also likely to cause problems.
[0015] A robot control device and a robot control method are desired that can perform high-precision processing in terms of time and distance in a simple manner.
[0016] Means for solving problems
[0017] One embodiment of the present disclosure is a robot control device comprising: a motion command interpretation unit that interprets a motion command program that describes a robot's taught motion and taught position to generate a motion command; a motion command execution unit that executes the motion command; a parallel call command detection unit that pre-reads the motion command program to detect a line in which a parallel call command is taught; and a parallel call command execution unit that calls and executes a program specified by the parallel call command at a specified timing.
[0018] Effects of the Invention
[0019] According to one embodiment, high-precision machining can be performed in terms of time and distance using a simple method. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1A This is an overall structural diagram of a robot control system according to one embodiment.
[0021] Figure 1B This is an overall configuration diagram related to an example of a robot control system according to one embodiment.
[0022] Figure 2 This is a functional block diagram of a robot control device according to one embodiment.
[0023] Figure 3A This is an example of a motion command program used in a robot control device according to an embodiment.
[0024] Figure 3B This is an example of a screen showing detailed information of a call-up command used in the robot control device according to one embodiment.
[0025] Figure 3C This is a diagram showing an example of the relationship between a teaching point designated by a robot controller according to one embodiment and locations where a “row number designation” call and a “position designation” call occur.
[0026] Figure 4A This is an example of a motion command program used in a robot control device according to an embodiment.
[0027] Figure 4B This is an example of a screen showing detailed information of a call-up command used in the robot control device according to one embodiment.
[0028] Figure 4C This is a diagram showing an example of a program executed by the robot control device according to one embodiment.
[0029] Figure 4D This is a flowchart showing the processing of a program executed by the robot control device according to one embodiment.
[0030] Figure 4E This is a flowchart showing the processing of a program executed by the robot control device according to one embodiment.
[0031] Figure 4F This is a flowchart showing the processing of a program executed by the robot control device according to one embodiment.
[0032] Figure 4G This is a flowchart showing the processing of a program executed by the robot control device according to one embodiment.
[0033] Figure 4H This is a diagram showing an example of the relationship between a teaching point designated by a robot controller according to one embodiment and locations where a “row number designation” call and a “position designation” call occur.
[0034] Figure 5 This is an example of a motion command program used in conventional robot control devices.
[0035] Figure 6A This is an example of a motion command program used in conventional robot control devices.
[0036] Figure 6B This is a diagram showing an example of the relationship between a teaching point designated by a conventional robot controller and locations where a “row number designation” call and a “position designation” call occur.
[0037] Description of Reference Numerals
[0038] 1 robot control system; 10 robot control device; 11 storage unit; 12 control unit; 20 robot; 30 external peripheral device; 121 motion command interpretation unit; 122 motion command execution unit; 123 parallel call command detection unit; 124 parallel call command execution unit. DETAILED DESCRIPTION
[0039] Below, refer to Figures 1A to 4H Embodiments of the present invention will be described.
[0040] (Structure of 1st Embodiment)
[0041] Figure 1A The overall structure of the robot control system 1 according to the embodiment of the present invention is shown. The robot control system 1 includes a robot control device 10, a robot 20, and an external peripheral device 30. Furthermore, the robot control device 10 and the robot 20, as well as the robot control device 10 and the external peripheral device 30, are connected in a manner capable of communicating with each other. Figure 1A Although not shown in the figure, the robot control device 10, the robot 20, and the external peripheral device 30 may be communicatively connected via a network.
[0042] The robot control device 10 controls the robot 20. Specifically, the robot control device 10 stores teaching programs, teaching data, motion parameters, etc. for motion control and machining control of the robot 20, and controls the robot 20 by executing the teaching programs based on the teaching data and motion parameters.
[0043] The robot 20 is, for example, a 6-axis vertical articulated robot or a 4-axis vertical articulated robot, but is not limited thereto and may be an orthogonal coordinate robot, a SCARA robot, a parallel link robot, or the like.
[0044] The external peripheral device 30 is various application control devices such as a PLC and a laser oscillator.
[0045] exist Figure 1A In the robot control system 1 shown, for example, when the external peripheral device 30 is a control device for a laser oscillator, the robot control device 10 controls the movement of the robot 20 and controls the laser processing process performed by the robot 20 by inputting and outputting signals and serial communication with the robot 20 and the external peripheral device 30.
[0046] Figure 1B This is an example of a robot control system 1, which is used in conjunction with an external peripheral device 30 as a coating machine, and is used to perform a coating operation by a robot 20. The robot 20 includes a nozzle 21, to which paint is supplied from the external peripheral device 30 as a coating machine via a paint supply hose 22, and the nozzle 21 is controlled by a manipulator provided by the robot 20, thereby performing a coating operation. In the following description, as needed, Figure 1B As shown, the case where the painting work is performed using the robot 20 will be described as an example.
[0047] Figure 2 2 is a functional block diagram of the robot control device 10 . The robot control device 10 includes a storage unit 11 and a control unit 12 .
[0048] The storage unit 11 stores a motion command program that describes the taught motions and taught positions of the robot 20. Furthermore, the motion command program includes a parallel call command for invoking the motion command in parallel with the motion command. This parallel call command can be used alone or in addition to the motion command to invoke a subroutine. Furthermore, in the "parallel call" of the present invention, the subroutine is executed independently and in parallel with the original program execution context.
[0049] In addition, examples of motion command programs will be described later.
[0050] The control unit 12 includes a CPU, a ROM, a RAM, a CMOS memory, and the like, and these are configured to be able to communicate with each other via a bus, which is well known to those skilled in the art.
[0051] The CPU is a processor that controls the entire robot control device 10. The CPU reads the system program and application program stored in the ROM via the bus and controls the entire robot control device 10 according to the system program and application program. Figure 2 As shown, the control unit 12 is configured to realize the functions of an operation command interpretation unit 121 , an operation command execution unit 122 , a parallel call command detection unit 123 , and a parallel call command execution unit 124 .
[0052] As described above, the motion command interpretation unit 121 interprets the motion command program describing the taught motion and taught position of the robot 20 and generates a motion command.
[0053] When the teaching program starts, the motion command execution unit 122 activates the task processing of the motion command interpretation unit 121 and executes the motion command generated by the motion command interpretation unit 121 .
[0054] The parallel call instruction detection unit 123 pre-reads the operation instruction program and detects a line in which a parallel call instruction is taught.
[0055] The parallel call command execution unit 124 (parallel call command execution unit 124a, parallel call command execution unit 124b, ... parallel call command execution unit 124n) starts the task processing of the parallel call command detection unit 123, and calls and executes the program specified by the parallel call command at a specified timing.
[0056] Furthermore, since the programs specified by the parallel call instructions can be executed in parallel, the parallel call instruction execution unit 124 includes a plurality of parallel call instruction execution units 124 a , 124 b , . . . , 124 n .
[0057] The parallel call command execution unit 124 can also execute a calling method (hereinafter also referred to as "line number specified call") in the motion command program to specify whether to generate a call when the program execution reaches the line before or after the line in which the parallel call command is taught. In addition, for one parallel call command, the "line number specified" call can be specified multiple times. In addition, when specifying the line number, it is possible to choose whether to consider all program command statements or only the robot motion command. Generally, since the movement of the robot takes a certain amount of time, this time can be used to set up the processing (segment selection) in the "position specified call" described later.
[0058] Alternatively, the parallel call command execution unit 124 may generate a call (hereinafter also referred to as a "position-specified call") in the motion command program at a timing specified by either the position or time of the manipulator included in the robot 20, based on the taught position in the line in which the parallel call command is taught. Furthermore, multiple "position-specified" calls can be specified for a single parallel call command. In the execution of applications by the robot 20, high-precision processing on the order of several milliseconds is often required, and this call can be used to perform such processing.
[0059] Figure 3A This shows an example of an action command program that contains parallel call commands. Figure 3AIn the motion command program shown, a concurrent call instruction, "CONC_CALL PROG6(10, 3, 5)," is added to the motion command in line 6. "CONC_CALL" (Concurrent Call) is a concurrent call instruction for calling the program "PROG6." Furthermore, "(10, 3, 5)" is an example of a parameter passed to "PROG6."
[0060] The parallel call command detection unit 123 pre-reads Figure 3A In the motion command program shown, line number 6 where the parallel call command is taught is detected.
[0061] Figure 3B Yes Figure 3A An example of a screen showing detailed information of the "CONC_CALL" command described in Figure 3A In the display of the described program, for example, when the cursor is positioned on the "CONC_CALL" command and the "ENTER" key is pressed, detailed information is displayed. Figure 3B The data shown may be stored in the robot controller 10 by assigning the detailed information to the “CONC_CALL” command and allocating a data area thereto. Alternatively, the data may be stored as a data file such as an XML file.
[0062] exist Figure 3B The column "CONC_CALL command details" shows that the "CONC_CALL" command on line number 6 where the cursor is positioned is a command for calling the program "PROG6".
[0063] In addition, the "'Line number specification' call definition" column is a call list in which the call method is line number specification.
[0064] "Program name" is the name of the program to be called. If nothing is specified, it will be displayed as <standard>, and the program specified by the "CONC_CALL" command will be called in advance. Alternatively, you can specify another program. In this case, the specified program will be called at the specified timing. In addition, if parameters are specified, the parameters will be passed to the subroutine.
[0065] "Trigger position" specifies when the command reaches the teaching point before or after the teaching position, the program written in "Program name" is called. Figure 3B In the example shown, the "trigger position" of "PROG6" is "-5", but if you refer to Figure 3A The recorded program example specifies calling "PROG6" at position "1", which is a point 5 points before the position [6] taught by the action command attached to "CONC_CALLPROG6(10, 3, 5)".
[0066] In addition, the "'Position-specified' call definition" column is a list of calls whose calling method is position-specified.
[0067] "Relative distance (mm)" specifies the program specified in "Program name" to be called when the robot arm approaches the position relative to the position taught by the "CONC_CALL" command. Negative values indicate a position forward of the taught point, while positive values indicate a position backward. The unit is "mm." For rounded corners, if the arm does not pass through the taught point, the relative distance is defined by the distance from the arm to the closest approach point.
[0068] "Relative time (ms)" specifies a time offset before or after the trigger position specified by "Relative distance (mm)." For example, if "-10" is specified, the trigger will be called 10 milliseconds before the position where the "position specification" trigger should have been called. Negative values indicate a time offset before, and positive values indicate a time offset after.
[0069] The parallel call instruction execution unit 124 calls and executes the program "PROG6" specified by the parallel call instruction "CONC_CALL" at the position [1] specified by the line number 5 before the position [6] specified by the line number 6 with the "trigger position" being "-5".
[0070] Furthermore, because the same program may be called multiple times at different times, a function is provided to identify the calling method and timing of the program being called within the called program. Based on the value from this function, the program can determine whether it was called using "line number specification" or "position specification." If "line number specification" was used, it can determine the line number from which the program was called, or if "position specification" was used, it can determine its current location, allowing it to take appropriate action based on the situation.
[0071] In addition, a method for sharing data between a series of programs called by a single "CONC_CALL" is also provided. For example, data pre-set in a program called by specifying a line number can be referenced by a program called later by specifying a position.
[0072] For example, the following operations can be performed: when setting by specifying a call with a line number, the value of the analog voltage is calculated in advance and the calculation result is temporarily saved in a shared area. Then, when the robot arrives near the teaching position, the calculation result saved in the shared area is used in the position specification call to quickly set the analog output (without recalculating the output voltage value).
[0073] Figure 3CThis is a diagram showing an example of the relationship between the teaching point and the location where the line number specified call and the position specified call occur. The solid arrow indicates the calling part of the program when the program is called by line number specification. When the program is called by line number specification, the calling part of the program corresponds to each line number where the action command is recorded, so the program is called at each teaching point. Figure 3C In the example shown, the program is called in P[1], P[2], and P[7].
[0074] In more detail, if you use Figure 3B In the example of detailed information shown, if the program called by "CONC_CALL" at line number 6 is "PROG6", since the "trigger position" is "-5", the parallel call instruction execution unit 124 executes "PROG6" at position [1] (P[1]) specified by line number 1, which is "-5" before line number 6. Similarly, if the program called by "CONC_CALL" at line number 6 is "PreProg3", since the "trigger position" is "-4", the parallel call instruction execution unit 124 executes "PreProg3" at position [2] (P[2]) specified by line number 2, which is "-4" before position [6] specified by line number 6. Similarly, when the program called by "CONC_CALL" in line number 6 is "PostProg1", since the "trigger position" is "1", the parallel call instruction execution unit 124 executes "PostProg1" in the position [7] (P[7]) specified by line number 7, which is "1" later than line number 6.
[0075] Furthermore, these "CONC_CALL" commands can be written on lines with arbitrary line numbers. The parallel call command execution unit 124 executes "PROG6" at the position specified by the line number that is "-5" before the arbitrary line number. Similarly, the parallel call command execution unit 124 executes "PreProg3" at the position specified by the line number that is "-4" before the arbitrary line number. Similarly, the parallel call command execution unit 124 executes "PostProg1" at the position specified by the line number that is "1" after the arbitrary line number.
[0076] On the other hand, the dotted arrow indicates the calling part of the program when calling the program by position specification. When calling the program by position specification, the calling part of the program becomes the position before and after the teaching point taught by the action command. Figure 3C In the example shown, the program is called before and after P[6].
[0077] In more detail, if you use Figure 3BIn the example of detailed information shown, when the program called by "CONC_CALL" of line number 6 is "Prox7", the "Relative distance (mm)" is "-40.0" and the "Relative time (ms)" is "0", the parallel call command execution unit 124 executes "Prox7" at a position of -40.0 (mm) relative to the position [6] specified by line number 6. Similarly, when the program called by "CONC_CALL" of line number 6 is "Prox8", the "Relative distance (mm)" is "-30.0" and the "Relative time (ms)" is "-40", the parallel call command execution unit 124 executes "Prox8" at a time of -40 (ms) from the time when the robot reaches the position of -30.0 mm relative to the position [6] specified by line number 6. Similarly, when the program called by "CONC_CALL" in line number 6 is "Prox9", "Relative distance (mm)" is "-20.0" and "Relative time (ms)" is "+20". Therefore, from the time when the robot reaches the position of -20.0 (mm) relative to the position specified by line number 6, that is, position [6], "Prox9" is executed at a time of +20 (ms). Similarly, when the program called by "CONC_CALL" in line number 6 is "Prox10", "Relative distance (mm)" is "-10.0" and "Relative time (ms)" is "0". Therefore, the parallel call command execution unit 124 executes "Prox10" at a position of -10.0 (mm) relative to position [6], which is the position specified by line number 6.
[0078] In addition, these "CONC_CALL" can be recorded in the line of any line number, and the parallel call command execution unit 124 executes "Prox7" at a position of -40.0 (mm) relative to the teaching position specified by the arbitrary line number. Similarly, the parallel call command execution unit 124 executes "Prox8" at a time of -40 (ms) from the time when the robot reaches a position of -30.0 (mm) relative to the teaching position specified by the arbitrary line number. Similarly, the parallel call command execution unit 124 executes "Prox9" at a time of +20 (ms) from the time when the robot reaches a position of -20.0 (mm) relative to the position specified by the arbitrary line number. Similarly, the parallel call command execution unit 124 executes "Prox10" at a position of -10.0 (mm) relative to the position specified by the arbitrary line number.
[0079] In addition, the parallel call instruction execution unit 124 can execute the parallel call instruction in a task different from the motion instruction when it is desired to prioritize the execution timing of the parallel call instruction, or can execute the parallel call instruction in the same task as the motion instruction when it is desired to prioritize the execution order.
[0080] Furthermore, in order to execute line number-specifying calls and position-specifying calls in parallel with the robot 20's program execution, multiple tasks (internal execution processing entities managed by the robot 20's operating system) are required to execute the program. For example, a total of three tasks—a task for executing the robot 20's program, a task for executing line number-specifying calls, and a task for executing position-specifying calls—may be run in parallel. In this case, if a subsequent line number-specifying call occurs while a line number-specifying call is already executing, the subsequent line number-specifying call will wait until the previous call completes. The same applies to position-specifying calls.
[0081] When executing multiple processes in parallel at the same time, it is important to be able to specify the execution priority. Generally, line number specified calls often take time to execute from several lines ago for "setup", so the execution priority can be lower. On the other hand, position specified calls need to be applied with high precision in coordination with the robot's movements, so they need to be executed with high priority. Therefore, the priority is usually specified in advance. For example, the execution part (task) of the line number specified call has a low priority, the task of executing the position specified call has a high priority, and the task for executing the program body has an intermediate priority.
[0082] Furthermore, it is also possible to consider an implementation that dynamically creates a task to execute parallel calls each time a line number-specified / position-specified call is made. In this case, for example, even if a position-specified call is already being executed, the execution of the next position-specified call can be started without waiting for the previous call to complete. In this case, a priority is specified for each position-specified call, and if multiple processes are being executed simultaneously, they are executed in descending order of priority.
[0083] Furthermore, in order to locate the call instruction for the target line during program execution by the robot 20 and pre-call it by specifying the line number, it is necessary to pre-read the program during program execution (particularly during motion command execution) and pre-load the program instructions scheduled for execution. Therefore, during the robot 20's movement processing, the program execution unit (motion command execution unit 122, parallel call instruction execution unit 124) is in a waiting state, and this idle time is used to perform program pre-reading.
[0084] (Effects of 2nd Implementation Method)
[0085] In the robot controller 10 of the present embodiment, the subroutine can be executed independently and in parallel with the original program execution context.
[0086] Furthermore, in the robot control device 10 of this embodiment, when a user teaches a logic command for controlling a process such as laser welding, for example, the logic command can be executed at an arbitrary position / timing independently of an operation command (teaching position) of the robot 20 .
[0087] Furthermore, in the robot control device 10 of the present embodiment, the number of teaching points of the robot 20 can be minimized, so the motion planning process of the robot 20 can also be reduced in weight, and the original performance of the robot 20 can be brought into play.
[0088] (3 Examples)
[0089] As an example, a case where the robot 20 performs a paint application operation will be described. When the robot 20 performs the paint application operation, the following processes need to be performed sequentially and accurately in parallel with the operation of the robot 20 near the application start position.
[0090] 1. Start discharging pressurized air to atomize the paint (corresponding to the "Air Open" procedure described later)
[0091] 2. Start applying voltage to electrostatically charge the paint (corresponding to the "Apply Static" program described later)
[0092] 3. Open the valve that sprays paint (corresponding to the "Trigger ON" procedure described later)
[0093] Figure 4A An example of the program in the embodiment is shown. Figure 4A In the example program shown, the sixth line includes a concurrent call command, "CONC_CALLGUN_ON(10, 3, 5)," for the action command. "CONC_CALL" (Concurrent Call) is a concurrent call command for calling the program "GUN_ON." Furthermore, "(10, 3, 5)" is an example of the parameters passed to "GUN_ON." "GUN_ON" is a program started for applying paint, and the parameters "10, 3, and 5" represent "paint flow rate," "air pressure," and "electrostatic voltage," respectively.
[0094] Figure 4B Yes Figure 4A An example of a screen showing detailed information of the "CONC_CALL" command described in Figure 4ADetailed information is displayed when the cursor is placed on the "CONC_CALL" command and the "ENTER" key is pressed during program input.
[0095] In this embodiment, three position designation calls need to be made near the teaching position, and position designation calls are made respectively to perform the processing sequence of "starting air blowing", "applying electrostatic voltage", and "starting paint coating".
[0096] Because the air delay time varies depending on the applied air pressure, it's not possible to pre-set fixed values for the distance and time of a position-specific call. Instead, the "Dandori" program listed in the "Pre Calls" column is executed when "GUN_ON" is executed. The "Dandori" program allows you to dynamically set the distance and time of a position-specific call.
[0097] exist Figure 4A as well as Figure 4B In the example, the parallel call command detection unit 123 pre-reads Figure 4A In the motion command program shown, line number 6 where the parallel call command is taught is detected.
[0098] Furthermore, when executing the procedure "GUN_ON(10, 3, 5)" specified by the parallel call command "CONC_CALL," the parallel call command execution unit 124 generates a line number-specified call at position [2] (P[2]) specified by line number 2, where the "trigger position" is "-4." This calls the "Dandori" procedure. The "Dandori" procedure defines when the three position-specified calls to the "AirOpen" procedure, the "ApplyStatic" procedure, and the "TriggerON" procedure will occur.
[0099] Figure 4C This example shows the internal structure of the "Dandori" program. Based on the specified air pressure value, the "Dandori" program calculates the delay time until air is blown out. It also calculates the timing (distance / time) for calling the "AirOpen" program, which sets a simulated output based on the specified air pressure value. Based on this calculation, the position-specific call of the "AirOpen" program is defined.
[0100] By the same calculation, the timing (distance / time) for calling the "ApplyStatic" program for applying electrostatic voltage and the "TriggerON" program for starting coating by position designation is calculated, and the position designation calling of the "ApplyStatic" program and the "TriggerON" program is defined.
[0101] In addition, Figure 4CThe "DefineProxCall" function is defined as follows. Specifically, in the DefineProxCall(d, t, p) function, d represents the relative position (positive or negative) indicating the timing for calling a specified program, t represents the time offset (positive or negative) used to adjust the timing for calling the specified program, and p represents the name of the program to be called.
[0102] Figure 4D This is a flowchart showing each process executed by the "Dandori" program.
[0103] In step S1 , the "Dandori" program is started.
[0104] In step S2 , the air pressure value, the electrostatic voltage value, and the paint flow rate value transmitted as parameters are read.
[0105] In step S3, the timing (distance / time) for calling the "AirOpen" program is calculated based on the designated air pressure value, and they are saved as "Dist1" and "tim1" variables, respectively.
[0106] In step S4, the timing (distance / time) for calling the "ApplyStatic" program is calculated based on the designated electrostatic voltage value, and they are saved as "Dist2" and "tim2" variables, respectively.
[0107] In step S5, the timing (distance / time) for calling the "TriggerON" program is calculated based on the designated electrostatic voltage value, and these are stored as "Dist3" and "tim3" variables, respectively.
[0108] In step S6, three position specifying calls are defined using the calculated distances / times (Dist1, tim1, Dist2, tim2, Dist3, tim3).
[0109] In step S7, the "Dandori" program ends.
[0110] Figure 4E This is a flowchart showing each process executed by the "AirOpen" program.
[0111] In step S11 , the “AirOpen” program is started.
[0112] In step S12 , the analog output is set based on the designated air pressure value.
[0113] In step S13, the "AirOpen" program ends.
[0114] Figure 4F This is a flowchart showing each process executed by the "ApplyStatic" program.
[0115] In step S21, the "ApplyStatic" program is started.
[0116] In step S22 , an analog output is set based on the designated electrostatic voltage value.
[0117] In step S23, the "ApplyStatic" program ends.
[0118] Figure 4G This is a flowchart showing each process executed by the "TriggerON" program.
[0119] In step S31, the "TriggerON" routine is started.
[0120] In step S32 , a simulation output is set based on the designated paint flow rate value.
[0121] In step S33, the "TriggerON" routine ends.
[0122] Figure 4H This is a diagram showing the relationship between the teaching point and the occurrence position of the line number designation call and the position designation call in this embodiment. Figure 4H In the example shown, the "Dandori" program is called in P[2] to set the coating start sequence in P[6] by specifying the line number. Furthermore, the "AirOpen" program, the "ApplyStatic" program, and the "TriggerON" program are called in that order between P[5] and P[6] by specifying the position.
[0123] (1) The robot control device of the present invention (for example, the above-mentioned "robot control device 10") comprises: an action command interpretation unit (for example, the above-mentioned "action command interpretation unit 121"), which interprets the action command program that describes the robot's teaching action and teaching position, and generates an action command; an action command execution unit (for example, the above-mentioned "action command execution unit 122"), which executes the above-mentioned action command; a parallel call command detection unit (for example, the above-mentioned "parallel call command detection unit 123"), which pre-reads the above-mentioned action command program and detects the line in which the parallel call command is taught; and a parallel call command execution unit (for example, the above-mentioned "parallel call command execution unit 124"), which calls and executes the program specified by the parallel call command at a specified timing.
[0124] This makes it possible to perform high-precision processing in terms of time and distance using a simple method.
[0125] (2) In the robot control device described in (1) (for example, the above-mentioned "robot control device 10"), the parallel call command execution unit (for example, the "parallel call command execution unit 124") specifies the number of lines before and after the line in which the parallel call command is taught in the action command program, and when the execution of the action command reaches the lines before and after, the parallel call command is executed in parallel with the execution of the action command.
[0126] This makes it possible to set the processing in the position specification call using the time required for the movement operation of the robot, for example.
[0127] (3) In the robot control device described in (1) (for example, the above-mentioned "robot control device 10"), the parallel call command execution unit (for example, the "parallel call command execution unit 124") executes the parallel call command in parallel with the execution of the motion command in the motion command program, based on the taught position based on the motion command in the line where the parallel call command is taught, at a timing specified by the position of the manipulator included in the robot and / or time.
[0128] As a result, for example, in the execution of a robot application, processing with high accuracy in units of several milliseconds can be easily performed.
Claims
1. A robot control device, characterized in that: have: A motion command interpretation unit that interprets the motion command program describing the robot's taught motions and taught positions to generate motion commands; an action command execution unit for executing the action command; a parallel call command detection unit that pre-reads the motion command program and detects a line in which a parallel call command is taught; and A parallel call command execution unit that calls and executes the program specified by the parallel call command at a specified timing. The parallel call command execution unit specifies the number of lines before and after the line where the parallel call command is taught in the motion command program, and executes the parallel call command in parallel with the execution of the motion command when the execution of the motion command reaches the lines before and after.
2. The robot control device according to claim 1, characterized in that: The parallel call command execution unit executes the parallel call command in the motion command program in parallel with the execution of the motion command at a timing specified by the position of the manipulator included in the robot and / or time, based on the taught position based on the motion command in the line where the parallel call command is taught.
Citation Information
Patent Citations
Control device
US20190101881A1