Device, control device and method for correcting a pressure command of a welding gun

The apparatus and method correct the pressing force command of a welding gun by measuring and adjusting it based on the detected force during the teaching orientation, ensuring consistent pressure and simplifying the correction process, thus improving welding quality and efficiency.

DE112022007046T5Pending Publication Date: 2025-07-24FANUC LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
DE112022007046
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-06-23
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

Existing systems for correcting the pressing force command of a welding gun are not precise and require complex re-teaching of the robot's orientation, leading to inconsistent welding quality due to orientation-dependent force changes.

Method used

An apparatus and method that utilize an operation execution unit to position the welding gun according to a teaching orientation, a pressing force detection unit to measure the actual force, and a command correction unit to adjust the force command based on the detected force, ensuring consistent pressure regardless of orientation.

Benefits of technology

The solution allows for high-accuracy correction of the pressing force command, maintaining consistent welding quality without the need for re-teaching the robot's orientation, simplifying the correction process and improving operational efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

There is a need to optimize the number of positions in which a welding gun is positioned in an operation for detecting a pressing force for correcting a pressing force command of a welding gun and to simplify this operation.An apparatus 70 includes: an operation execution unit 62 that causes a robot 12 to operate so that a welding gun 14 is positioned at a teaching position defined in a welding work program; a pressing force detection unit 64 that detects a pressing force at the moment the welding gun 14 is positioned at the teaching position by the operation execution unit 62 and is driven by a first pressing force command; and a command correction unit 66 that corrects the first pressing force command based on the pressing force detected by the pressing force detection unit 64, thereby calculating a second pressing force command for driving the welding gun 14 at the teaching position at the time of executing the welding work program.
Need to check novelty before this filing date? Find Prior Art

Description

Technical FieldThe present disclosure relates to an apparatus, a controller, and a method for correcting a pressing force command for determining a pressing force of a welding gun.General State of the ArtThere is known an apparatus that corrects a pressing force command for determining a pressing force of a welding gun in response to an orientation of the welding gun (for example, Patent Document 1).Citing listPatent LiteraturePatent Document 1: JP 2001-47249 ASummary of the InventionTechnical ProblemThere is a need for a technique for highly accurately correcting the pressing force command and simplifying a work for the correction.Solution of the ProblemAccording to an aspect of the present disclosure, in an apparatus configured to correct a pressing force command defining a pressing force of a welding gun in response to an orientation of the welding gun, the welding gun being moved by a robot and configured to press a workpiece to perform welding on the workpiece, the apparatus includes: an operation execution unit configured to operate the robot such that the welding gun is positioned in a teaching orientation defined in a welding operation program to cause the robot and the welding gun to perform welding work; a pressing force acquisition unit configured to acquire the pressing force when the welding gun is positioned in the teaching orientation by the operation execution unit and is driven according to a first pressing force command; and a command correction unit configured to obtain a second pressing force command for when the welding gun is driven in the teaching orientation during execution of the welding operation program by correcting the first pressing force command based on the pressing force detected by the pressing force detection unit.According to another aspect of the present disclosure, in a method of correcting a pressing force command defining a pressing force of a welding gun in response to an orientation of the welding gun, the welding gun being moved by a robot and configured to press a workpiece to perform welding on the workpiece, the method includes: operating, by a processor, the robot such that the welding gun is positioned in a teaching orientation defined in a welding operation program to cause the robot and the welding gun to perform a welding operation; detecting, by the processor, the pressing force when the welding gun is positioned in the teaching orientation and is driven according to a first pressing force command; obtaining, by the processor, a second pressing force command therefor when the welding gun is driven in the teaching orientation during the execution of the welding operation program by correcting the first pressing force command based on the detected pressing force.Advantageous Effects of the InventionAccording to the present disclosure, the pressing force command is corrected using the teaching orientation in which the welding gun is to be positioned in the actual welding work, thereby obtaining, with high accuracy, the second pressing force command that allows the welding gun to generate a constant pressing force regardless of the orientation. Moreover, since it is not necessary to re-teach the robot the orientation for correcting the pressing force command, the work for correcting the pressing force command can be simplified.Brief Description of the Drawings[FIG. 1 ] FIG. 1 is a schematic view of a welding robot system according to an embodiment.[FIG. 2 ] FIG. 2 is a block diagram of the welding robot system illustrated in FIG. 1.[FIG. 3] FIG. 3 is an enlarged view of the welding gun illustrated in FIG. 1.[FIG. 4] FIG. 4 illustrates a state in which the orientation of the welding gun illustrated in FIG. 3 is changed.[FIG. 5 ] FIG. 5 is a flowchart illustrating an example of a method for correcting a pressing force command performed by the welding robot system illustrated in FIG. 1.[FIG. 6 ] FIG. 6 illustrates an example of a welding work program.[FIG. 7 ] FIG. 7 illustrates an example of a position data table.[FIG. 8 ] FIG. 8 illustrates an example of a welding condition data table.[FIG. 9 ] FIG. 9 is an enlarged view of a welding gun according to another embodiment.[FIG. 10 ] FIG. 10 is a schematic view of a welding robot system according to another embodiment.[FIG. 11 ] FIG. 11 is a block diagram of the welding robot system illustrated in FIG. 10.[FIG. 12] FIG. 12 is a flowchart illustrating an example of a method for correcting a pressing force command performed by the welding robot system illustrated in FIG. 10.[FIG. 13 ] FIG. 13 is a block diagram illustrating other functions of the welding robot system illustrated in FIG. 11.[FIG. 14] FIG. 14 is a flowchart illustrating an example of a method for correcting a pressing force command performed by the welding robot system illustrated in FIG. 13.[FIG. 15] FIG. 15 is a block diagram illustrating other functions of the welding robot system illustrated in FIG. 2.[FIG. 16] FIG. 16 is a flowchart illustrating an example of a method for correcting a pressing force command performed by the welding robot system illustrated in FIG. 15.[FIG. 17] FIG. 17 is a flowchart illustrating an example of a flow of step S 35 in FIG. 16.[FIG. 18] FIG. 18 illustrates another example of a position data table.[FIG. 19] FIG. 19 illustrates an example of an alignment reproduction program.[FIG. 20 ] FIG. 20 illustrates another example of a position data table.[FIG. 21] FIG. 21 is a block diagram illustrating another function of the welding robot system illustrated in FIG. 11.[FIG. 22] FIG. 22 is a flowchart illustrating an example of a method for correcting a pressing force command performed by the welding robot system illustrated in FIG. 21.[FIG. 23] FIG. 23 is a flowchart illustrating an example of a flow of step S 54 in FIG. 22.[FIG. 24] FIG. 24 illustrates another example of a position data table.[FIG. 25] FIG. 25 illustrates another example of the alignment reproduction program.DESCRIPTION OF EMBODIMENTSEmbodiments of the present disclosure will be described in detail below with reference to the drawings. Note that, in various embodiments described below, the same elements are denoted by the same reference numerals, and overlapping description is omitted. First, a welding robot system 10 according to an embodiment will be described with reference to FIGS. 1 and 2. The welding robot system 10 includes a robot 12, a welding gun 14, a pressing force sensor 16, and a controller 18.In the present embodiment, the robot 12 is a vertical articulated robot, and includes a base 20, a carousel 22, a forearm portion 24, an upper arm portion 26, and a wrist portion 28. The carousel 22 is mounted on the base 20 so as to be rotatable about a vertical axis.The forearm portion 24 is mounted on the carousel 22 so as to be rotatable about the horizontal axis. The upper arm part 26 is rotatably provided at the distal end portion of the lower arm part 24. The wrist part 28 includes a wrist base 28 aprovided rotatably at the distal end portion of the upper arm part 26 and a wrist flange 28 bprovided at the wrist base 28 aand rotatable about a wrist axis A 1.The base frame 20, the carousel 22, the forearm part 24, the upper arm part 26, and the wrist part 28 are each provided with a plurality of servomotors 30 (FIG. 2 ). The servomotors 30 rotate each movable component of the robot 12 (i.e., the carousel 22, the forearm part 24, the upper arm part 26, the wrist part 28, and the wrist flange 28 b) in response to a command from the controller 18, thereby moving the welding gun 14.The welding gun 14 is detachably attached to the wrist flange 28 b. As illustrated in FIG. 3, the welding gun 14 in the present embodiment is a so-called C-shaped spot welding gun, and includes a base part 32, a fixed arm 34, a fixed welding tip 36, a movable arm 38, a servo motor 40, a motion conversion mechanism 42, and a movable welding tip 44.The base portion 32 is coupled to the wrist flange 28 b. A proximal end 34 aof the fixed arm 34 is fixed to the base part 32 and extends curved in a substantially L shape from the proximal end 34 ato a distal end 34 b. The fixed welding tip 36 is fixed to the distal end 34 bof the fixed arm 34.The movable arm 38 is provided on the base part 32 so as to be reciprocable along the tong axis A 2. In the present embodiment, the movable arm 38 is a rod-shaped member linearly extending along the tong axis A 2. The movable welding tip 44 is fixed to a distal end 38 aof the movable arm 38 so as to be aligned with the fixed welding tip 36 on a forceps axis A 2. Note that the forceps axis A 2 and the wrist axis A 1 may be arranged in parallel.The servomotor 40 has an output shaft (not illustrated) and is fixed to the base part 32. The motion conversion mechanism 42 includes a ball screw mechanism or a mechanism including a toothed belt and a pulley, and converts the rotational motion of the output shaft of the servomotor 40 into a back and forth motion of the movable arm 38 along the tong axis A 2, for example.The controller 18 controls the operation of the robot 12 and the welding gun 14. The processor 50, which includes a CPU, a GPU, or the like, is communicatively connected to the memory 52 and the I / O interface 54 via a bus 56, and performs arithmetic processing for a pressing force command correction function to be described later while communicating with these components.The memory 52 includes a RAM, a ROM, or the like, and temporarily or permanently stores various kinds of data used for the arithmetic processing executed by the processor 50 and various kinds of data generated during the arithmetic processing. The I / O interface 54 includes, for example, a Ethernet™ port, a USB port, an optical fiber connector, or a HDMI™ port, and communicates data with an external device in a wired or wireless manner according to a command from the processor 50.The controller 18 is further provided with an input device 58 and a display device 60. The input device 58 includes a keyboard, a mouse, a touch panel, or the like, and receives data input from an operator. The display device 60 includes a liquid crystal display, an organic EL display, or the like, and displays various kinds of data.The input device 58 and the display device 60 are connected to the I / O interface 54 by wire or wirelessly. For example, the input device 58 and the display device 60 may be integrated into a housing of the controller 18, or may be provided as a single computer (such as a PC) that is a separate component from the housing of the controller 18.As illustrated in FIG. 1, a robot coordinate system C 1 is set for the robot 12. The robot coordinate system C 1 is a coordinate system for automatically controlling each movable component of the robot 12.On the other hand, as illustrated in FIG. 3, a tool coordinate system C 2 is set to the welding gun 14. The tool coordinate system C 2 is a coordinate system for defining the position and the orientation of the welding gun 14 in the robot coordinate system C 1. In the present embodiment, the tool coordinate system C 2 is set to the welding gun 14 such that the origin (a so-called TCP) is located on the fixed welding tip 36 (for example, the center of the distal end surface) and the z-axis coincides with (or is parallel to) the gun axis A 2.When moving the welding gun 14, the processor 50 first sets the tool coordinate system C 2 to the robot coordinate system C 1, and generates a command (position command, speed command, torque command, or the like) for each servomotor 30 of the robot 12 such that the welding gun 14 is positioned at a position and in an orientation represented by the set tool coordinate system C 2. Thus, the welding gun 14 is moved by the operation of the robot 12 to be positioned at any position and orientation in the robot coordinate system C 1.The welding gun 14 pressurizes a workpiece (not illustrated) to perform welding. More specifically, the processor 50 sends a pressing force command F C to the servo motor 40 to move the movable arm 38 along the tong axis A 2, thereby moving the movable welding tip 44 toward the fixed welding tip 36. As a result, the workpiece is held between the movable welding tip 44 and the fixed welding tip 36. In this state, a pressing force F corresponding to the pressing force command F C is applied from the movable welding tip 44 to the workpiece.The processor 50 then activates the fixed welding tip 36 and the movable welding tip 44 and energizes the fixed welding tip 36 and the movable welding tip 44. As a result, welding is performed on the workpiece held between the fixed welding tip 36 and the movable welding tip 44. The pressing force command F C sent to the servomotor 40 is a command that defines the pressing force F to be generated by the welding gun 14 and represents a target value (for example, 2 [kN]) of the pressing force F.The pressing force sensor 16 includes a piezoelectric element, a strain gauge, or the like, and measures the pressing force F of the welding gun 14. The pressing force sensor 16 is held between the movable welding tip 44 driven by the servomotor 40 and the fixed welding tip 36, and measures the pressing force F acting on the pressing force sensor 16 in this state. The pressing force sensor 16 transmits detection data of the measured pressing force F to the controller 18.At this time, the pressing force F generated by the welding gun 14 when the welding gun 14 is driven according to the predetermined pressing force command FC may change in response to the orientation of the welding gun 14. In the example illustrated in FIG. 3, for example, the welding gun 14 is disposed in an orientation OR 0 in which the gun axis A 2 is parallel to the vertical direction and the movable welding tip 44 is oriented vertically above the fixed welding tip 36.It is assumed that in this orientation OR 0 the processor 50 controls the servomotor 40 according to a predetermined pressing force command F C_0( for example, F C_0= 1 [ kN]), and the welding gun 14 pressurizes a pressurization target (for example, the fixed welding tip 36) with the movable welding tip 44 according to the pressing force command F C_0.In this case, a pressing force F 0, which is applied from the movable welding tip 44 to the pressurization target object, is a total force F 0(= Fτ+F g) of a force component Fτ obtained by converting the torque of the servomotor 40 in the direction of the gun axis A 2 by the motion conversion mechanism 42 and a gravity component F g of the movable portion of the welding gun 14 including the motion conversion mechanism 42, the movable arm 38, and the movable welding tip 44.Next, it is assumed that the welding gun 14 is rotated by an angle θ about the y axis of the tool coordinate system C 2 from the orientation OR 0 illustrated in FIG. 3 to be arranged in an orientation ORθ illustrated in FIG. 4, and the processor 50 controls the servo motor 40 with the same pressing force command F C_0 to press the pressing target by the movable welding tip 44. A pressing force Fθ applied from the movable welding tip 44 to the pressurization target object in this state is a total force Fθ(=Fτ+F g cosθ) from the above-described force component Fτ and a force component F g cosθ obtained by multiplying the above-described gravity component F g by cosθ.Therefore, the pressing force Fθin the orientation ORθumF g(1- cosθ) is smaller than the pressing force F 0 in the orientation OR 0. illustrated in FIG. 3. Thus, the pressing force F changes according to the orientation OR of the welding gun 14. such a change in the pressing force F according to the orientation OR affects the welding quality.Therefore, in the present embodiment, the processor 50 corrects the pressing force command F C according to the orientation OR of the welding gun 14. The flow illustrated in FIG. 5 starts when the processor 50 receives a correction start command from the operator, a host controller, or the like.In step S 1, the processor 50 acquires a welding work program 200. The welding work program 200 is a computer program for causing the robot 12 and the welding gun 14 to perform welding work. FIG. 6 schematically illustrates an example of the welding work program 200.In the welding work program 200 illustrated in FIG. 6, for example, a code "MOVE [TP 1] VELOCITY [V 1]" in the first line is a positioning instruction INp to cause the robot 12 to move the welding gun 14 at a speed V=V 1[ mm / s] and position the welding gun 14 at a first teaching position TP 1 and at a first teaching orientation OR 1, which are indicated by an identifier [TP 1].On the other hand, as data other than the welding work program 200, a position data table 202 is generated and stored in the memory 52 in advance. FIG. 7 schematically illustrates an example of the position data table 202. The position data table 202 illustrated in FIG. 7 stores coordinate data items assigned identifiers of "TP1", "TP2", "TP3", and "TP4", respectively.For example, the coordinates (X 1, Y 1, Z 1, W 1, P 1, R 1) are assigned the identifier "TP1". Of the coordinates (X 1, Y 1, Z 1, W 1, P 1, R 1) the coordinates (X 1, Y 1, Z 1) are coordinates in the robot coordinate system C 1 where the welding gun 14 (specifically, TCP) is to be positioned, and represent the first teaching position TP 1. On the other hand, the coordinates (W 1, P 1, R 1) are coordinates defining axis directions (so-called yaw, pitch, and roll) of the tool coordinate system C 1 in the robot coordinate system C 1, and represent a first teaching orientation OR 1.In reading the positioning instruction IN P "MOVE [TP1] VELOCITY [V1]" in the first row during the execution of the welding work program 200, the processor 50 refers to the position data table 202 and acquires the coordinates (X 1, Y 1, Z 1, W 1, P 1, R 1), which are indicated by the identifier "TP1", from the position data table 202.Then, the processor 50 sets, to the robot coordinate system C 1, the tool coordinate system C 2 of the origin position and the axis directions represented by the coordinates (X 1, Y 1, Z 1, W 1, P 1, R 1) and generates a command (such as a position command, a speed command, and a torque command) to the servomotors 30 of the robot 12 to move the welding gun 14 at the speed V 1 to the first teaching position TP 1 and the first teaching orientation OR 1, which are represented by the set tool coordinate system C 2. Thus, the processor 50 operates the robot 12 according to the positioning instruction IN P, to position the welding gun 14 at the first teaching position TP 1 and in the first teaching orientation OR 1.As described above, in the present embodiment, an nth teaching position TP n and an nth teaching orientation OR n( n=1, 2, 3, 4) are defined in the welding work program 200. The operator teaches the robot 12 each of the nth teaching position TP n and the nth teaching orientation OR n in advance using a teaching device (a teaching pendant, a tablet terminal device, or the like).In a code "[Vn]" defining the speed V in a code "MOVE [TPn] VELOCITY [Vn]" (n=1, 2, 3, 4) of each positioning instruction IN P a numerical value (for example, 50 [mm / s]) of the speed V n can be described. Alternatively, the ratio [%] of a maximum speed V MAX, at which the robot 12 moves the welding gun 14, may be described in "[Vn]" (for example, "80%").Alternatively, similar to the position data table 202 described above, a speed data table in which the speed V n is stored together with the identifier "Vn" may be prepared in advance as data different from the welding work program 200. In this case, when reading the positioning instruction IN P "MOVE [TPn] VELOCITY [Vn]" in the 2i-1th row (i=1, 2, 3, 4), the processor 50 refers to the speed data table, and acquires from the speed data table the speed V n, to which the identifier "Vn" is assigned. The speeds V n: "VELOCITY [Vn]" defined in the welding work program 200 may be different from each other, or at least two (for example, all) of the speeds V n may be the same.Return to Figure 6. In the welding work program 200, a code "GUN [ON] CONDITION [1]" in the 2 ith row (i=1, 2, 3, 4) is a welding instruction IN W for activating the welding gun 14 to perform welding on the workpiece according to a welding condition 1 to which an identifier [1] is assigned.The goal of this welding may include several types of workpieces having different thicknesses and made of different materials. In the present embodiment, for each type of workpiece, a plurality of mutually different welding conditions m (m=1, 2, 3,... ) are set in advance. FIG. 8 illustrates an example of the welding condition 1 assigned with the identifier [1].In the welding condition 1, parameters such as a pressing force F 1= 2 [ kN], a welding current I 1= 8 [ kA], and a welding time t 1= 10 [ s] are set. An exemplary data table (pressing force F m, welding current I m, welding time t m) for a welding condition m as illustrated in FIG. 8 is prepared for each type (i.e., thickness and material) of the workpiece and stored in the memory 52 in advance. For the welding condition m, any parameter (for example, a welding voltage or the like) may be set instead of the pressing force F m, the welding current I m and the welding time t m.In reading the welding instruction IN W "GUN [ON] CONDITION [1]" in the 2i-th row during the execution of the welding work program 200, the processor 50 refers to the welding condition data table 1 assigned with the identifier [1], and acquires the welding condition 1 parameters such as the pressing force F 1= 2 [ kN], the welding current I 1= 8 [ kA], and the welding time t 1= 10 [ s].Then, the processor 50 generates a pressing force command F C_1(= 2 [ kN]) corresponding to the pressing force F 1 defined in the welding condition 1, controls the servomotor 40 of the welding gun 14 according to the pressing force command F C_1 and stops the workpiece between the movable welding tip 44 and the fixed welding tip 36.On the other hand, the servomotor 40 of the welding gun 14 is equipped with a load detection sensor LS (not illustrated) that detects a load torque, a feedback current, or the like of the servomotor 40. The processor 50 acquires the feedback FB 1 (that is, the load torque, the feedback current, or the like) from the load detection sensor LS.Here, calibration work is performed in advance so that the pressing force command F C to the servomotor 40 and the pressing force F generated by the welding gun 14 driven according to the pressing force command F C coincide with each other. This calibration work is performed, for example, in a state where the welding gun 14 is disposed by the robot 12 in the predetermined reference orientation OR 0. The reference orientation OR 0 is, for example, the orientation illustrated in FIG. 3.In this calibration work, the operator places the pressing force sensor 16 between the movable welding tip 44 and the fixed welding tip 36 of the welding gun 14 disposed in the reference orientation OR 0 and measures the pressing force F using the pressing force sensor 16 at the time when the welding gun 14 is driven according to the pressing force command F C. The operator detects the correlation between the feedback FB 1 from the load detection sensor LS at this time and the measured pressing force F, and calibrates the correlation so that the pressing force command F C and the pressing force F coincide.The processor 50 acquires the feedback FB 1 from the load detection sensor LS while driving the servomotor 40 according to the pressing force command F C_1 according to the welding instruction IN W and stops the servomotor 40 when the feedback FB 1 reaches a value corresponding to the pressing force command F C_1.Next, the processor 50 energizes the fixed welding tip 36 and the movable welding tip 44 by the welding current I 1(= 8 [ kA]) defined in the welding condition 1, and performs the welding on the workpiece over the welding time t 1(= 10 [ s]). In this way, the processor 50 performs the welding work on the workpiece by executing the welding instruction IN W.In step S 1, the processor 50 acquires the welding work program 200 including the positioning instruction IN P and the welding instruction IN W as described above. For example, the welding work program 200 is stored in the memory 52 in advance, and the processor 50 acquires the welding work program 200 by reading from the memory 52.Alternatively, the welding work program 200 may be stored on another computer (a host controller, a production management server, a teaching device, or the like). The other computer may be communicatively connected to the I / O interface 54 of the controller 18 via a communication network (Internet, LAN). The processor 50 may acquire the welding work program 200 by downloading from the other computer.In step S 2, the processor 50 executes the positioning instruction IN P in the welding work program 200. In the present embodiment, in step S 2, the processor 50 reads the positioning instruction IN P "MOVE [TP 1] VELOCITY [V 1]" defined in the first line in the welding work program 200, and causes the robot 12 to move the welding gun 14 at the speed V 1 to position the welding gun 14 at the first teaching position TP 1 and the first teaching orientation OR 1. Thus, in the present embodiment, the processor 50 functions as an operation execution unit 62 (FIG. 2 ) that operates the robot 12 to position the welding gun 14 in the teaching orientation OR n defined in the welding work program 200.In step S 3, the processor 50 determines whether or not the welding gun 14 has been positioned at the n-th teaching position TP n and the n-th teaching orientation OR n. More specifically, the processor 50 may determine whether or not the welding gun 14 is positioned at the n-th teaching position TP n and the n-th teaching orientation OR n based on the feedback FB 2 (for example, position feedback, speed feedback, or acceleration feedback of the servomotor 30) from a rotation detection sensor RS 1 (encoder, Hall sensor, or the like) provided in each servomotor 30 of the robot 12.For example, when step S 3 is executed after step S 2, the processor 50 determines whether or not the welding gun 14 is positioned at the first teaching position TP 1 and in the first teaching orientation OR 1. When the processor 50 determines that the welding gun 14 has been positioned at the n-th teaching position TP n and in the n-th teaching orientation OR n (that is, determines YES), the processor 50 stops the operation of the robot 12 and proceeds to step S 4. As a result, the welding gun 14 stops in a state of being positioned at the n-th teaching position TP n and the n-th teaching orientation OR n. On the other hand, if NO is determined, the processor 50 repeats step S 3.After determining YES in step S 3, the processor 50 reads the welding instruction IN W, which is defined in the line subsequent to the positioning instruction IN P executed in step S 2 (or the last executed step S 8 to be described later) in the welding work program 200. However, in the flow of FIG. 5, the processor 50 does not execute the welding instruction IN W but instead executes a pressing force detection operation FO.In the present embodiment, in the controller 18, a flag FL for executing the pressing force detection operation FO to be described later is set instead of the welding instruction IN W. When the flag FL is ON, the processor 50 does not execute the welding instruction IN W read upon determining YES in step S 3, but instead executes steps S 4 to S 7 described later as the pressing force detection operation FO.For example, the operator or the host controller may send a flag set signal to the controller 18, and the processor 50 may switch the flag FL between ON and OFF in response to the flag set signal. When the flow in FIG. 5 is executed, the operator or the host controller outputs the flag setting signal for turning on the flag FL to the controller 18, and the processor 50 turns on the flag FL in response to the flag setting signal ON. Thus, upon determining YES in step S 3 during execution of the flow in FIG. 5, the processor 50 executes steps S 4 to S 7 as the pressing force detection operation FO, instead of executing the welding instruction IN W.In step S 4, the processor 50 determines whether or not a pressing force detection operation start command is received from the operator. For example, the processor 50 generates a notification signal SG 1 as an image or a sound providing a message "Adjust pressing force sensor between movable welding tip and fixed welding tip", and displays the notification signal SG 1 as an image on the display device 60, or outputs the notification signal SG 1 as a sound from a speaker (not illustrated) provided in the controller 18.The operator manually sets the pressing force sensor 16 between the movable welding tip 44 and the fixed welding tip 36, and operates the input device 58 to issue the pressing force detection operation start command to the processor 50. The processor 50 proceeds to step S 5 when it is determined YES, that is, when it is determined that the pressing force detection operation start command has been received, or repeats step S 4 when it is determined NO.In step S 5, the processor 50 controls the welding gun 14 according to a pressing force command F C_m( first pressing force command) corresponding to the pressing force F m defined in the welding condition m. More specifically, the processor 50 acquires the pressing force F 1(= 2 [ kN]) defined in the welding condition 1 assigned with the identifier [1] according to a code "CONDITION [1]" of the welding instruction IN W, which is read when the determination result in the latest step S 3 was YES. Then, the processor 50 generates the pressing force command F C_1(= 2 [ kN]) corresponding to the pressing force F 1 detected from the welding condition 1, and drives the servo motor 40 of the welding gun 14 according to the pressing force command F C_1.On the other hand, the processor 50 acquires the feedback FB 1 from the above-described load detection sensor LS while driving the servomotor 40, and stops the servomotor 40 when the feedback FB 1 reaches a value corresponding to the pressing force command F C_1. As a result, the pressing force sensor 16 is held between the movable welding tip 44 and the fixed welding tip 36, and the pressing force F corresponding to the pressing force command F C_1 is applied to the pressing force sensor 16.In step S 6, the processor 50 acquires the pressing force F. More specifically, the processor 50 acquires the pressing force F measured by the pressing force sensor 16 at the end of step S 5 (that is, when the servomotor 40 is stopped) from the pressing force sensor 16 and stores the pressing force F in the memory 52. As described above, the processor 50 in the present embodiment acquires the pressing force F actually measured by the pressing force sensor 16 when the welding gun 14 that has been positioned at the n-th teaching position TP n and the n-th teaching orientation OR n in the latest step S 2 (or the later-described step S 8) is driven according to the pressing force command F C_1.Thus, the processor 50 functions as a pressing force detection unit 64 (FIG. 2 ) that detects the pressing force F. The pressing force F acquired in step S 6 may be different from the pressing force command F C_1( that is, the pressing force F 1= 2 [ kN]) defined in the welding condition 1 depending on the n-th teaching orientation OR n, in which the welding gun 14 is positioned, even when the above-described calibration work is performed.In step S 7, the processor 50 determines whether or not the pressing force F has been detected for all the teaching positions TP n and teaching orientations OR n defined in the welding work program 200. The processor 50 terminates the flow illustrated in FIG. 5 when YES is determined, and proceeds to step S 8 when NO is determined.In step S 8, the processor 50 executes the positioning instruction IN P defined in the subsequent line in the welding work program 200. For example, when step S 8 is first executed, the processor 50 executes a positioning instruction IN P "MOVE [TP 2] VELOCITY [V 2]" in the third row to move the welding gun 14 at a speed V 2 to position the welding gun 14 at a second teaching position TP 2 and at a second teaching orientation OR 2.Then, the processor 50 returns to step S 3. In this way, the processor 50 repeatedly executes the loop of steps S 3 to S 8 until it is determined YES in step S 7, and detects the pressing force F in step S 6 each time the welding gun 14 is positioned at the n-th teaching position TP n and the n-th teaching orientation OR n by executing step S 8.After completion of the flow illustrated in FIG. 5, the processor 50 executes the welding work program 200 to perform the actual welding work on the workpiece. When the actual welding work is performed, the operator or the host controller outputs the flag setting signal for turning off the flag FL to the controller 18, and the processor 50 turns off the flag FL in response to the flag setting signal OFF. As a result, in the actual welding work, the processor 50 executes the welding work on the workpiece by executing the welding instruction IN W in the welding work program 200.In the present embodiment, when the welding work program 200 for the actual welding work is executed, the processor 50 corrects the pressing force command F C_1 based on the pressing force F acquired in the above-described step S 6. For example, it is assumed that the pressing force F acquired in the above-described step S 2 or S 8 immediately after the welding gun 14 is positioned at the n-th teaching position TP n and in the n-th teaching orientation OR n by executing the positioning instruction IN P in the 2i-1th row in step S 6 is 1.5 [kN].In this case, the processor 50 obtains a correction amount ΔF for correcting the pressing force command F C_1(= 2 [ kN]) for driving the servomotor 40 of the welding gun 14, for example, when the welding instruction IN W is executed in the 2i-th row subsequent to the positioning instruction IN P in the 2i-1-th row in the actual welding work, as a difference ΔF (=0.5 [kN]) between the detected pressing force F and the pressing force command F C_1.Then, the processor 50 corrects the pressing force command F C_1 by adding the correction amount ΔF to obtain a new pressing force command F C_1' = 2,5 [ kN] (second pressing force command). The correction amount ΔF is not limited to the difference between the pressing force F and the pressing force command F C_1 and may be, for example, a value obtained by multiplying the difference by a predetermined coefficient, or may be obtained by any other calculation using the pressing force F and the pressing force command F C_1.Then, the processor 50 drives the servo motor 40 according to the corrected pressing force command F C_1' (= 2,5 [ kN]) during execution of the welding instruction IN W in the 2i-th row. As a result, the pressing force F applied to the workpiece by the welding gun 14 positioned in the nth learning orientation OR n in the actual welding work can be substantially brought to the pressing force F 1 defined in the welding condition 1.As described above, the processor 50 in the present embodiment functions as a command correction unit 66 (FIG. 2 ) that corrects the first pressing force command F C_1 on the basis of the pressing force F acquired in step S 6 to obtain the second pressing force command F C_1' for when the welding gun 14 is driven in the teaching orientation OR n during the execution of the welding operation program 200.As described above, the processor 50 in the present embodiment functions as the operation execution unit 62, the pressing force acquisition unit 64, and the command correction unit 66 to correct the pressing force command F C, which defines the pressing force F of the welding gun 14, according to the orientation OR of the welding gun 14. Therefore, the operation execution unit 62, the pressing force acquisition unit 64, and the command correction unit 66 constitute a device 70 (FIG. 2 ) that corrects the pressing force command F C according to the orientation OR of the welding gun 14.In this apparatus 70, the operation execution unit 62 operates the robot 12 so that the welding gun 14 is positioned in the teaching orientation OR n defined in the welding operation program 200 (steps S 2 and S 8), and the pressing force acquisition unit 64 acquires the pressing force F when the welding gun 14 is driven according to the first pressing force command F C_1 while the welding gun 14 is positioned in the teaching orientation OR n by the operation execution unit 62 (step S 6). Then, the command correction unit 66 corrects the first pressing force command F C_1 on the basis of the pressing force F detected by the pressing force detection unit 64, to obtain the second pressing force command F C_1' for when the welding gun 14 is driven in the teaching orientation OR n during the execution of the welding operation program 200.According to this configuration, the pressing force command F C_1 can be corrected based on the pressing force F acquired in the teaching orientation OR n, in which the welding gun 14 is to be positioned in the actual welding work. Thus, the second pressing force command F C_1', which allows the welding gun 14 to generate the constant pressing force F, can be obtained with high accuracy regardless of the orientation in which the welding gun 14 is to be positioned in the actual welding work. Moreover, since it is not necessary to re-teach the robot 12 the orientation for correcting the pressing force command F C_1 the work for correcting the pressing force command F C_1 can be simplified.In the apparatus 70, the welding work program 200 includes the positioning instruction IN P for operating the robot 12 to position the welding gun 14 at the n-th teaching position TP n and the n-th teaching orientation OR n and the welding instruction IN W for activating the welding gun 14 to perform welding on the workpiece. Then, the operation execution unit 62 executes the positioning instruction IN P in the welding work program 200 to position the welding gun 14 at the n-th teaching position TP n and in the n-th teaching orientation OR n by the robot 12 (steps S 2 and S 8) while not executing the welding instruction IN W (steps S 4 to S 7).Then, the pressing force acquisition unit 64 acquires the pressing force F while the welding gun 14 is positioned at the n-th teaching position TP n and the n-th teaching orientation OR n by the operation execution unit 62 (step S 6). With this configuration, the pressing force F for correcting the pressing force command F C_1 can be detected while the robot 12 performs the same operation as the actual welding work. Therefore, the operation of detecting the pressing force F can be performed while avoiding interference between the robot 12 and the peripheral equipment at the welding work site.In the apparatus 70, the pressing force acquisition unit 64 acquires the pressing force F measured by the pressing force sensor 16 when the welding gun 14 positioned in the n-th teaching orientation OR n by the operation execution unit 62 is driven according to the first pressing force command F C_1. With this configuration, since the pressing force F can be measured with high accuracy by the pressing force sensor 16, the second pressing force command F C_1' can be obtained with higher accuracy.In the above-described embodiment, an operation program PG 1 for executing the pressing force detection operation FO (steps S 4 to S 7) may be created separately from the welding operation program 200. In this case, upon determining YES in step S 3, the processor 50 executes the operation program PG 1 and executes steps S 4 to S 7 as the pressing force detection operation FO.Note that, in the above-described embodiment, a case where the flag FL for the controller 18 is set will be described. However, the present invention is not limited thereto, and in the welding work program 200 acquired in step S 1, the flag FL for executing the pressing force acquisition operation FO may instead be assigned to the code: "GUN [ON] CONDITION [1]" of each welding instruction IN W as well. Then, the processor 50 may refer to the flag FL assigned to the welding instruction IN W read upon determining YES in step S 3, and execute steps S 4 to S 7 as the pressing force detection operation FO instead of the welding instruction IN W.When the welding work program 200 is executed to execute the actual welding work, the flag FL may be cleared from the welding work program 200. Alternatively, the processor 50 may execute the welding instruction IN W by ignoring the assigned flag FL during execution of the welding instruction IN W in the welding work program 200.In the above-described embodiment, a case where the pressing force sensor 16 is connected to the I / O interface 54 of the controller 18 and transmits the measured pressing force F to the controller 18 is described. However, the present invention is not limited thereto, and the pressing force sensor 16 may not be connected to the controller 18. In this case, the operator can manually input the pressing force F measured by the pressing force sensor 16 to the controller 18 at the end of the above-described step S 5 by operating the input device 58.In the above-described embodiment, a case where the welding robot system 10 has the pressing force sensor 16 independently of the welding gun 14 and the operator manually sets the pressing force sensor 16 is described. However, the pressure force sensor 16 can also be integrated into the welding tongs 14.Such an embodiment is illustrated in FIG. 9. In the welding robot system 10' illustrated in Fig. 9, a pressing force sensor 16' is integrally attached to the movable arm 38 together with the movable welding tip 44. When the movable welding tip 44 driven by the servomotor 40 pressurizes the pressurization target (for example, the fixed welding tip 36), the pressing force sensor 16' detects a force acting on the pressing force sensor 16 as the reaction force, and thereby measures the pressing force F applied to the pressurization target.According to the welding robot system 10', the step S4 can be omitted from the flow of FIG. 5. More specifically, after determining YES in step S 3, the processor 50 executes step S 5 to drive the servomotor 40 of the welding gun 14 according to the pressing force command F C_1. As a result, the movable welding tip 44 is pressed against the fixed welding tip 36 as the pressurization target, thereby pressurizing the fixed welding tip 36. Then, when the feedback FB 1 detected by the above-described load detection sensor LS reaches a value corresponding to the pressing force command F C_1 the processor 50 stops the servomotor 40.When this step S 5 is executed, the pressurization target (such as a steel plate) separate from the welding gun 14 may be inserted between the movable welding tip 44 and the fixed welding tip 36, and the pressurization target may be pressurized by the movable welding tip 44. In step S6, the processor 50 detects the pressing force F measured by the pressing force sensor 16' at this time. The pressing force sensor 16' may be fixed between the fixed welding tip 36 and the fixed arm 34.Next, with reference to FIGS. 10 and 11, a welding robot system 80 according to another embodiment will be described. The welding robot system 80 is different from the above-described welding robot system 10 in the following configuration. More specifically, in the welding robot system 80, the above-described pressing force sensor 16 is not provided, and the welding gun 14 includes a position sensor 68.The position sensor 68 detects a position PS of the movable welding tip 44. as an example, the position sensor 68 includes a rotation detection sensor RS 2 (an encoder, a Hall sensor, or the like) provided on the servo motor 40 of the welding gun 14 and detects a rotation position (or a rotation angle) of the servo motor 40. Since the rotational position of the servomotor 40 is correlated with the positions of the movable arm 38 and the movable welding tip 44 in the direction of the tong axis A 2, the position sensor 68 of the present example can detect the position PS of the movable welding tip 44 by detecting the rotational position of the servomotor 40.As another example, the position sensor 68 includes a linear scale SC provided on the welding gun 14 (for example, the base part 32) and enabling direct detection of the position PS of the movable arm 38 or the movable welding tip 44 in the direction of the gun axis A 2. The position sensor 68 (rotation detection sensor RS 2 or linear scale SC) transmits detection data of the detected position PS to the controller 18.Next, a method of correcting the pressing force command F C in the welding robot system 80 will be described with reference to FIG. 12. Note that, in the flow illustrated in FIG. 12, the same processing as in the flow in FIG. 5 is denoted by the same step numbers, and redundant descriptions are omitted. After starting the flow illustrated in FIG. 12, the processor 50 executes step S 1 and acquires the welding work program 200.In the present embodiment, the processor 50 analyzes the acquired welding work program 200 and refers to the code "CONDITION [1]" in the welding instruction IN W in the 2i-th row. Then, the processor 50 acquires information on the pressing force F 1(= 2 [ kN]) included in the welding condition 1 to which the identifier [1] in the code is assigned from the data table (FIG. 8 ) corresponding to the welding condition 1.After step S 1, in step S 11, the processor 50 positions the welding gun 14 in the reference orientation OR 0. More specifically, the processor 50 operates the robot 12 to position the welding gun 14 in the reference orientation OR 0 illustrated in FIG. 3. As a result, the gun axis A 2 of the welding gun 14 now extends parallel to the vertical direction, and the movable welding tip 44 is oriented perpendicularly above the fixed welding tip 36.In step S 12, the processor 50 controls the welding gun 14 according to the pressing force command F C_m( first pressing force command) corresponding to the pressing force F m defined in the welding condition m. More specifically, the processor 50 generates the pressing force command F C_1(= 2 [ kN]) corresponding to the pressing force F 1 on the basis of the information on the pressing force F 1, which is included in the welding condition 1 detected in the above-described step S 1, and drives the servomotor 40 of the welding gun 14 according to the pressing force command F C_1.Thus, the movable welding tip 44 is pressed against the fixed welding tip 36 as the pressurization target. Then, when the feedback FB 1 from the above-described load detection sensor LS reaches a value corresponding to the pressing force command F C_1 the processor 50 stops the servo motor 40.At this time, with the calibration work described above, the pressing force command F C and the pressing force F at the time when the welding gun 14 disposed in the reference orientation OR 0 is driven according to the pressing force command F C are calibrated to match each other. Therefore, the pressing force F applied to the pressing force sensor 16 in this step S 12 coincides with the pressing force F 1(= 2 [ kN]) in the welding condition 1 corresponding to the pressing force command F C_1.In step S 13, the processor 50 detects a first position PS 1 of the movable welding tip 44. more specifically, the processor 50 detects the first position PS 1( detected by the position sensor 68 or the rotational position) at the end of step S 12 (that is, when the servomotor 40 is stopped) by the position sensor 68.As described above, the processor 50 in the present embodiment functions as a position detection unit 72 (FIG. 11 ) that detects the first position PS 1 detected by the position sensor 68 when the welding gun 14 positioned in the reference orientation OR 0 is driven according to the first pressing force command F C_1 and the pressurization target object (more specifically, the fixed welding tip 36) is pressed by the movable welding tip 44.After step S 13, the processor 50 sequentially executes steps S 2, S 3, and S 5 described above. As a result, the welding gun 14 positioned at the nth teaching position TP n and in the nth teaching orientation OR n is driven according to the pressing force command F C_1(= 2 [ kN]), and the movable welding tip 44 applies the pressing force F to the fixed welding tip 36 as the pressurization target object. The pressing force F at this time according to the nth teaching orientation OR n may be different from the pressing force command F C_1 (that is, the pressing force F 1= 2 [ kN] in the welding condition 1).In step S 14, the processor 50 functions as the position detection unit 72 and detects a second position PS 2 of the movable welding tip 44. more specifically, the processor 50 detects the first position PS 2( detected by the position sensor 68 or the rotational position) at the end of step S 5 (that is, when the servomotor 40 is stopped) by the position sensor 68.As described above, the pressing force F with which the movable welding tip 44 presses the fixed welding tip 36 when step S 14 is performed may be different from the pressing force F 1 when step S 13 is performed. Thus, the second position PS 2 acquired in step S 14 may be different from the first position PS 1 acquired in step S 13.As described above, the processor 50 functions as the position detection unit 72 to obtain the second position PS 2 detected by the position sensor 68 when the pressurization target object (more specifically, the fixed welding tip 36) is pressurized by the movable welding tip 44 while driving the welding gun 14 positioned at the n-th teaching orientation OR n in step S 2 or S 8 according to the first pressing force command F C_1.In step S 15, the processor 50 functions as the pressing force acquisition unit 64 and acquires the pressing force F. At this time, the first position PS acquired in step S 13 1, the second position PS acquired in step S 14 2, the pressing force F 1, which is defined in the welding condition 1 acquired in step S 1, and the pressing force F acquired in step S 15 are in a relationship represented by the following formula 1:As a result of the calibration work described above, the pressing force F 1 in Formula 1 coincides with the pressing force command F C_1= 2 [ kN] as described above and is known. Therefore, the pressing force F of Formula 1 can be obtained by the following calculation: F=F 1 ·PS 2 / PS 1. The processor 50 stores the obtained pressing force F in the memory 52.After step S 15, the processor 50 successively executes steps S 7 and S 8 described above, and repeatedly executes a loop of steps S 3, S 5, S 14, S 15, S 7, and S 8 until it is determined YES in step S 7, and detects the pressing force F each time the welding gun 14 is positioned at the n-th teaching position TP n and the n-th teaching orientation OR n in step S 8.After completion of the flow illustrated in FIG. 12, the processor 50 executes the welding operation program 200 for the actual welding operation as in the above-described embodiment, and functions as the command correction unit 66 during the execution of the welding operation program 200 to correct the pressing force command F C_1 in each teaching orientation OR n on the basis of the pressing force F acquired in step S 15, thereby obtaining the pressing force command F C_1'.As described above, in the present embodiment, the processor 50 corrects the pressing force command F C according to the orientation OR of the welding gun 14 by functioning as the operation execution unit 62, the pressing force detection unit 64, the command correction unit 66, and the position detection unit 72. Therefore, the operation execution unit 62, the pressing force detection unit 64, the command correction unit 66, and the position detection unit 72 constitute a device 90 (FIG. 11 ) that corrects the pressing force command F C according to the orientation OR of the welding gun 14.In the apparatus 90, the position detection unit 72 detects the first position PS 1, detected by the position sensor 68, when the welding gun 14 positioned at the reference orientation OR 0 is driven according to the first pressing force command F C_1 and the pressurization target object (fixed welding tip 36) is pressurized by the movable welding tip 44 (step S 13).The position detection unit 72 detects the second position PS 2, detected by the position sensor 68, when the pressurization target object is pressurized by the movable welding tip 44 while the welding gun 14, which is positioned in the n-th teaching orientation OR n by the operation execution unit 62, is driven according to the first pressing force command F C_1 (step S 14). Then, based on the first position PS 1 and the second position PS 2 the pressing force acquisition unit 64 acquires the pressing force F in the n-th learning orientation OR n through a predetermined calculation (more specifically, a calculation using the above-described formula (1)) (step S 15).With this configuration, the pressing force F can be detected in the teaching orientation OR n without using a physical sensor such as the above-described pressing force sensor 16. Therefore, the operator can omit the work of manually setting the pressing force sensor 16, and the flow in FIG. 12 can be effectively automated, whereby the work of detecting the pressing force F can be simplified.In the above-described embodiment, a case is described in which the processor 50 positions the welding gun 14 at all the teaching positions TP n and in all the teaching orientations OR n by executing step S 2 or S 8, and detects the pressing force F in step S 6 or S 15. However, the present invention is not limited thereto, and when the processor 50 functions as the command correction unit 66 to obtain the pressing force command F C_1' at the n-th teaching position TP n and in the n-th teaching orientation OR n the processor 50 may obtain the pressing force command F C_1' at a k-th teaching position TP k and in a k-th teaching orientation OR k based on the obtained pressing force command F C_1', the nth learning position TP n and the kth (k≠ n) learning position TP k can be estimated.For example, in step S 2, the processor 50 positions the welding gun 14 at the first teaching position TP 1 and in the teaching orientation OR 1 and detects the pressing force F in step S 6 or S 15 described above. the processor 50 is assumed to then obtain the pressing force command F C_1' at the first teaching position TP 1 and in the first teaching orientation OR 1 by correcting the first pressing force command F C_1 based on the detected pressing force F during the actual welding work.In this case, the processor 50 may estimate the second pressing force command F C_1' at the second teaching position TP 2 and the second teaching orientation OR 2 by executing a predetermined calculation using a predetermined approximation formula based on the obtained pressing force command F C_1' and the first teaching position TP 1 and the second teaching position TP 2, which are defined in the welding work program 200 (more specifically, coordinates are in the robot coordinate system C 1). This approximate formula is, for example, a formula representing a change (for example, a linear change) in the pressing force F from the first teaching position TP 1 to the second teaching position TP 2 and determined in advance by the operator.In this case, the processor 50 functioning as the operation execution unit 62 does not execute the operation of positioning the welding gun 14 at the second teaching position TP 2 and in the second teaching orientation OR 2 in the above-described step S 8. With this configuration, the positioning operation in step S 8 and the operation of detecting the pressing force F in step S 15 for the second teaching orientation OR 2 can be canceled, and the second pressing force command F C_1' in the second teaching orientation OR 2 can be estimated with high accuracy.Next, other functions of the welding robot system 80 will be described with reference to FIGS. 13 and 14. The welding robot system 80 further executes a flow illustrated in FIG. 14. Note that in the flow illustrated in FIG. 14, the same processing as in the flow illustrated in FIG. 12 is denoted by the same step numbers, and redundant descriptions are omitted.In the flow in FIG. 14, if NO is determined in step S 7, the processor 50 executes step S 21. In step S 21, the processor 50 obtains a difference φ between the teaching orientation OR 1, OR 2,..., OR n, which is defined in the positioning instruction IN P which has already been executed, and a teaching orientation OR n+1, which is defined in the positioning instruction IN P to be executed next.For example, it is assumed that the processor 50 positions the welding gun 14 at the first teaching position TP 1 and the first teaching orientation OR 1 according to the positioning instruction IN P in the first line in the welding work program 200 (FIG. 6 ) in step S 2, then executes steps S 3, S 5, S 14, S 15, and S 7, and proceeds to step 21.In this case, the processor 50 obtains, in step S 21, a difference φ 1_2 between the first teaching orientation OR 1, which is defined in the positioning instruction IN P in the first line, and the second teaching orientation OR 2, which is defined in the positioning instruction IN P in the third line, which is to be executed next. More specifically, the processor 50 refers to the code of the positioning instruction IN P: "MOVE [TP2] VELOCITY [V2]" in the third row in the welding work program 200, and acquires the coordinates (X 2, Y 2, Z 2, W 2, P 2, R 2), which are indicated by the identifier "TP2", from the position data table 202.Then, the processor 50 obtains the difference φ 1_2 between the first teaching orientation OR1and the second teaching orientation OR2based on the coordinates (W 1, P 1, R 1) of the first teaching orientation OR 1, which are defined in the most recently executed positioning instruction IN P of the first row, and the coordinates (W 2, P 2, R 2) of the second teaching orientation OR 2, which have been acquired from the position data table 202.An example of the method of obtaining the difference φ 1_2 will be described below. First, the processor 50 expresses the coordinates (W 1, P 1, R 1) of the first teaching orientation OR 1 as a 3×3 matrix M 1. In this matrix M 1 a vector V 1_1 represented by three parameters in a first column is a unit vector representing the rotational component about the x-axis of the tool coordinate system C2, a vector V 1_2 represented by three parameters in a second column is a unit vector representing the rotational component about the y-axis of the tool coordinate system C2, and a vector V 1_3 represented by three parameters in a third column is a unit vector representing the rotational component about the z-axis of the tool coordinate system C2.Similarly, the processor 50 expresses the coordinates (W 2, P 2, R 2) of the second learning orientation OR 2 as a 3×3 matrix M 2. Then, the processor 50 obtains an inner product IP 1 of the vector V 1_1 in the first column of the matrix M 1 and a vector V 2_1 in the first column of the matrix M 2. The inner product IP 1 is expressed as cos φ x when it is assumed that φ x is the angle between the vector V 1_1 and the vector V 2_1. The angle φ x represents a difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2 in the direction around the x-axis of the tool coordinate system C 2. The processor 50 may determine the angle φ x= cos -1( IP 1) from the determined inner product IP 1= cos φ x.Similarly, processor 50 obtains an inner product IP 2 of vector V 1_2 in the second column of matrix M 1 and vector V 2_2 in the second column of matrix M 2. The inner product IP 2 is expressed as cos φ y when it is assumed that φ y is the angle between the vector V 1_2 and the vector V 2_2. The angle φ y represents a difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2 in the direction about the y-axis of the tool coordinate system C 2. The processor 50 may obtain the angle φ y= cos -1( IP 2) from the determined inner product IP 2= cos φ y.In this manner, the processor 50 obtains the angles φ x and φ y as the difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2. Therefore, the processor 50 functions as an orientation difference calculation unit 74 (FIG. 13 ) that calculates the difference φ 1­_2 between the first teaching orientation OR 1 and in the second teaching orientation OR 2. Note that the above-described method of obtaining the difference φ is an example, and the processor 50 may obtain the difference φ using any method.In step S 22, the processor 50 determines whether the difference φ estimated in step S 21 is less than a predetermined threshold φ th. For example, it is assumed that the processor 50 obtains the angles φ x and φ y as the difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2 in the immediately preceding step S 21.In this case, in this step S 22, the processor 50 determines whether or not the angle φ x is smaller than a predetermined threshold φ tn_x( that is, φ x< φ th_x) and whether or not the angle φ y, is smaller than a predetermined threshold φ th_y( that is, φ y< ( φ th_y). When φ x< φ th_x and φ y< φ th_y are valid, the processor 50 determines that the difference φ 1_2 between the first learning orientation OR 1 and the second learning orientation OR 2 is less than the threshold φ th (i.e., YES). On the other hand, when φ x ≥ φ th_x or φ y > φ th_y holds, the processor 50 determines that the difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2 is equal to or greater than the threshold φ th (that is, determines NO).As described above, the processor 50 in the present embodiment functions as a difference determination unit 76 (FIG. 13 ) that determines whether or not the difference φ 1_2 obtained in step S 21 is less than the predetermined threshold φ th. On the other hand, the processor 50 proceeds to step S 8 when NO is determined in step S 22. Then, in step S 8, the processor 50 executes the positioning instruction IN P in the third row to move the welding gun 14 to the second teaching position TP 2 and the second teaching orientation OR 2 and returns to step S 3.On the other hand, the processor 50 returns to step S 7 when YES is determined in step S 22. That is, in the present embodiment, when the difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2 is small (in other words, when the two orientations OR 1 and OR 2 are approached to each other), the processor 50 does not execute the operation of executing the positioning instruction IN P in the third row in step S 8 nor the subsequent operation of detecting the pressing force F at the second teaching position TP 2 and in the second teaching orientation OR 2 in step S 15. Then, in step S 7, the processor 50 determines that the pressing force F for the second teaching position TP 2 and the teaching orientation OR 2 is detected.As described above, in the present embodiment, when the difference φ between at least one of the teaching orientations OR 1, OR 2,..., OR n, which are defined in the positioning instruction IN P already executed, and the teaching orientation OR n+1, which is defined in the positioning instruction IN P to be executed next, is small, the next positioning instruction IN P is not executed, and the operation of detecting the pressing force F is canceled.For example, it is assumed that the difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2 among the four teaching orientations OR n illustrated in FIG. 7 is smaller than the threshold φ th, as described above. In this case, it is assumed that the processor 50 positions the welding gun 14 at the third teaching position TP 3 and in the teaching orientation OR 3 according to the positioning instruction IN P in the fifth line in the welding work program 200 in step S 8, then executes steps S 3, S 5, S 14, S 15, and S 7, and proceeds to step S 21.In this case, in step S 21, the processor 50 obtains each of a difference φ 1_4 between the first teaching orientation OR 1, which is defined in the already executed first-line positioning instruction IN P and a fourth teaching orientation OR 4, which is specified in the next-to-be-executed seventh-line positioning instruction IN P and a difference φ 3_4 between the third teaching orientation OR 3, which is defined in the already executed third-line positioning instruction IN P and the fourth teaching orientation OR 4.In step S 22, when at least one of the differences φ 1_4 and φ 3_4 is less than the threshold φ th, the processor 50 determines YES. In this case, the processor 50 does not execute the positioning instruction IN P in the seventh row, and terminates step S 15 of detecting the pressing force F in the fourth teaching orientation OR 4. That is, in the present embodiment, the processor 50 acquires the pressing force F in step S 15 only for the teaching orientations OR n, which are not close to each other (that is, the difference φ is equal to or greater than the predetermined threshold φ th).After the flow illustrated in FIG. 14, the processor 50 executes the welding operation program 200 for the actual welding operation, and functions as the command correction unit 66 during the execution of the welding operation program 200 to correct the pressing force command F C_1 in each teaching orientation OR n on the basis of the pressing force F acquired in step S 15, thereby obtaining the pressing force command F C_1'.Here, in the present embodiment, the processor 50 uses the common correction amount ΔF between a plurality of learning orientations OR n having a small difference φ (that is, they are close to each other). For example, it is assumed that the operation of detecting the pressing force F is canceled in step S 15 because the difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2 is small and YES is determined in step S 22.In this case, the processor 50 functions as the command correction unit 66, and corrects the pressing force command F C_1 for driving the welding gun 14 in the second teaching orientation OR 2 using the correction amount ΔF obtained for the first teaching orientation OR 1. For example, it is assumed that the correction amount ΔF obtained in the first learning orientation OR 1 is ΔF=0.5 [kN], as described above.In this case, when the welding instruction IN W in the fourth line is executed in the welding work program 200, the processor 50 corrects the pressing force command F C_1(= 2 [ kN]) for driving the welding gun 14 in the second teaching orientation OR 2 by the correction amount ΔF (=1[kN]) obtained in the first teaching orientation OR 1 to obtain the new pressing force command F C_1' = 2,5 [ kN] (second pressing force command). When the welding instruction IN W is executed in the fourth row, the processor 50 controls the welding gun 14 positioned in the second teaching orientation OR 2 with the new pressing force command F C_1' (= 2,5 [ kN]).For example, it is assumed that the operation of detecting the pressing force F is canceled in step S 15 because the difference φ 1_4 between the first teaching orientation OR 1 and the fourth teaching orientation OR 4 is small and YES is determined in step S 22. In this case, the processor 50 functions as the command correction unit 66, and corrects the pressing force command F C for driving the welding gun 14 in the fourth teaching orientation OR 4 using the correction amount ΔF (=0.5 [kN]) obtained for the first teaching orientation OR 1 to obtain the new pressing force command F C_1' (= 2,5 [ kN]).Then, when the welding instruction IN W is executed in the eighth line, the processor 50 controls the welding gun 14 positioned in the fourth teaching orientation OR 4 according to the new pressing force command F C_1'. That is, in this case, the processor 50 corrects the original pressing force command F C_1 using the common correction amount ΔF (=0.5 [kN]) in the first teaching orientation OR 1, the second teaching orientation OR 2 and the fourth teaching orientation OR 4.In the present embodiment, a case where the pressing force command F C_1, which has the same value (that is, the pressing force F 1= 2 [ kN] of the welding condition 1 illustrated in FIG. 8 ), is determined in advance for all the teaching orientations OR n is described. However, the present invention is not limited thereto, and a different pressing force command F C_1 may be determined for each teaching orientation OR n. In this case, the pressing force command F C_1 for each teaching orientation OR n may be stored in the data table of the welding condition 1 illustrated in FIG. 8.As described above, in the present embodiment, the processor 50 corrects the pressing force command F C according to the orientation OR of the welding gun 14 by functioning as the operation execution unit 62, the pressing force detection unit 64, the command correction unit 66, the position detection unit 72, the orientation difference calculation unit 74, and the difference determination unit 76. Therefore, the operation execution unit 62, the pressing force detection unit 64, the command correction unit 66, the position detection unit 72, the orientation difference calculation unit 74, and the difference determination unit 76 constitute a device 100 (FIG. 13 ) that corrects the pressing force command F C according to the orientation OR of the welding gun 14.In the apparatus 100, the pressing force acquisition unit 64 acquires the first pressing force F when the welding gun 14 is positioned in the first teaching orientation OR 1 by the operation execution unit 62 (step S 15), and the command correction unit 66 calculates the correction amount ΔF (=0.5 [kN]) for correcting the first pressing force command F C_1(= 2 [ kN]) for driving the welding gun 14 in the first teaching orientation OR 1 to the second pressing force command F C_1' (= 2,5 [ kN]) based on the first pressing force F.On the other hand, the orientation difference calculation unit 74 calculates the difference φ 1_2 between the first learning orientation OR 1 and the second learning orientation OR 2( step S 21), and the difference determination unit 76 determines whether or not the difference φ 1_2 calculated by the orientation difference calculation unit 74 is less than the predetermined threshold φ th (step S 22). When the difference determination unit 76 determines that the difference φ 1_2 is less than the predetermined threshold φ th( that is, YES in step S 22), the operation execution unit 62 does not execute the operation (step S 8) of positioning the welding gun 14 in the second teaching orientation OR 2.Then, the command correction unit 66 corrects the first pressing force command F C(= 2 [ kN]) for driving the welding gun 14 in the second teaching orientation OR 2 using the correction amount ΔF obtained in the first teaching orientation OR 1 thereby obtaining the second pressing force command F C_1' (= 2,5 [ kN]) in the second teaching orientation OR 2.According to this configuration, since the common correction amount ΔF between a plurality of learning orientations OR n having a small difference φ can be used, it is possible to cancel the positioning operation in step S 8 and the operation of detecting the pressing force F in step S 15. With this configuration, the cycle time of the flow in FIG. 14 can be reduced.The difference determination unit 76 and the orientation difference calculation unit 74 of the apparatus 100 may be applied to the apparatus 70 illustrated in FIG. 2. The processor 50 executes steps S 21 and S 22 in FIG. 14 after determining NO in step S 7 in FIG. 5, and returns to step S 7 and proceeds to step S 8 after determining YES and NO in step S 22, respectively.Here, in the present embodiment, a case where the processor 50 uses the common correction amount ΔF between a plurality of learning orientations OR n with a small difference φ (that is, close to each other) will be described. However, the present invention is not limited thereto, and when there are a plurality of teaching orientations OR n having a small difference φ, the processor 50 may obtain the second pressing force command F C_1' in another teaching orientation OR n+1 based on the second pressing force command F C_1', which has been corrected at a teaching orientation OR n and the difference φ.For example, it is assumed that the processor 50 obtains the second pressing force command F C_1' by correcting the first pressing force command F C_1 in the first teaching orientation OR 1, as described above, and the difference φ 1_2 between the first teaching orientation OR 1 and the second teaching orientation OR 2( that is, the angles φ x and φ y) is small. In this case, the processor 50 may obtain the second pressing force command F C_1' in the second teaching orientation OR 2 by linearly changing the second pressing force command F C_1' in the first teaching orientation OR 1 according to the angle φ y about the y axis of the tool coordinate system C 2 orthogonal to the tong axis A 2 in the difference φ 1_2.For example, it is assumed that the second teaching orientation OR 2 is the orientation illustrated in FIG. 4, and the first teaching orientation OR 1 is an orientation obtained by rotating the second teaching orientation OR 2 by the angle φ y about the y-axis of the tool coordinate system C 2 to the orientation illustrated in FIG. 3. In this case, the processor 50 may function as the command correction unit 66 to obtain the second pressing force command F C_1' in the second learning orientation OR 2 by linearly increasing the second pressing force command F C_1' in the first learning orientation OR 1 according to the angle φ y.Conversely, it is assumed that the first teaching orientation OR 1 is the orientation illustrated in FIG. 4, and the second teaching orientation OR 1 is an orientation obtained by rotating the first teaching orientation OR 1 by the angle φ y about the y-axis of the tool coordinate system C 2 toward the orientation illustrated in FIG. 3. In this case, the processor 50 may function as the command correction unit 66 to obtain the second pressing force command F C_1' in the second learning orientation OR 1 by linearly increasing the second pressing force command F C_1' in the first learning orientation OR 1 according to the angle φ y.As described above, in the present embodiment, the command correction unit 66 obtains the second pressing force command F C_1' in the second learning orientation OR 2 based on the second pressing force command F C_1' in the first learning orientation OR 1 and the difference φ (for example, the angle φ y). With this configuration, the positioning operation in step S 8 and the operation of detecting the pressing force F in step S 15 for the second teaching orientation OR 2 can be canceled, and the second pressing force command F C_1' in the second teaching orientation OR 2 can be obtained with high accuracy according to the difference φ.When there are a plurality of teaching orientations OR n having a small difference φ, the processor 50 may obtain the correction amount ΔF in another teaching orientation OR n+1 based on the correction amount ΔF obtained in a teaching orientation OR n and the difference φ. For example, it is assumed that the correction amount ΔF is obtained in the first learning orientation OR 1, as described above, and the difference φ 1_2 between the first learning orientation OR 1 and the second learning orientation OR 2 is small. In this case, the processor 50 may obtain the correction amount ΔF for correcting the first pressing force command F C_1 in the second teaching orientation OR 2 by linearly changing the correction amount ΔF obtained in the first teaching orientation OR 1 according to the angle φ y about the y axis of the tool coordinate system C 2 orthogonal to the tong axis A 2.For example, it is assumed that the second teaching orientation OR 2 is the orientation illustrated in FIG. 4, and the first teaching orientation OR 1 is an orientation obtained by rotating the second teaching orientation OR 2 by the angle φ y about the y-axis of the tool coordinate system C 2 toward the orientation illustrated in FIG. 3. In this case, the processor 50 may function as the command correction unit 66 to obtain the correction amount ΔF for correcting the first pressing force command F C_1 in the second learning orientation OR 2 by linearly increasing the correction amount ΔF in the first learning orientation OR 1 according to the angle φ y.Conversely, it is assumed that the first teaching orientation OR 1 is the orientation illustrated in FIG. 4, and the second teaching orientation OR 1 is an orientation obtained by rotating the first teaching orientation OR 1 by the angle φ y about the y-axis of the tool coordinate system C 2 toward the orientation illustrated in FIG. 3. In this case, the processor 50 may function as the command correction unit 66 to obtain the correction amount ΔF for correcting the first pressing force command F C_1 in the second learning orientation OR 1 by linearly decreasing the correction amount ΔF in the first learning orientation OR 1 according to the angle φ y.Next, other functions of the welding robot system 10 will be described with reference to FIGS. 15 to 17. The welding robot system 10 further executes a flow illustrated in FIG. 16. In the present embodiment, the processor 50 generates the orientation reproduction program 204 for reproducing each teaching orientation OR n defined in the welding work program 200 and detecting the pressing force F in each teaching orientation OR n.After starting the flow in FIG. 16, the processor 50 executes step S 1 and acquires the welding work program 200. In step S 31, the processor 50 extracts the teaching orientation OR n from the welding work program 200. More specifically, the processor 50 analyzes the welding operation program 200 and extracts all positioning instructions IN P. defined in the welding operation program 200.Then, the processor 50 extracts an identifier [TPn] included in the code of the positioning instruction IN P and acquires the teaching orientation OR n indicated by the identifier [TPn] from the position data table 202 (FIG. 7 ). As a result, the processor 50 extracts coordinates (W 1, P 1, R 1), which represent the first learning orientation OR 1 coordinates (W 2, P 2, R 2), which represent the second learning orientation OR 2 coordinates (W 3, P 3, R3) which represent the third learning orientation OR_NER #1_, and coordinates (W 4, P 4, R 4), which represent the fourth teaching orientation OR 4. In this way, the processor 50 in the present embodiment functions as an orientation extraction unit 78 (FIG. 15 ) that extracts the teaching orientation OR n from the welding work program 200.In step S 32, the processor 50 determines whether or not an input of an alignment reproduction position OP is received. The orientation reproduction position OP is a position (more specifically, coordinates (X, Y, Z)) in the robot coordinate system C 1 for positioning the welding gun 14 (in other words, the TCP) at the time of executing an orientation reproduction program 204 (FIG. 19 ) described later.For example, the processor 50 generates an input image IM for inputting the orientation reproduction position OP and causes the display device 60 to display the image. While the operator views the input image IM, he operates the input device 58 to transmit to the processor 50 an input for designating the coordinates of the orientation reproduction position OP. In the following, a case where the operator refers to the coordinates (X 0, Y 0, Z 0) in the robot coordinate system C 1 as the orientation reproduction position OP will be described.The coordinates (X 0, Y 0, Z 0) of the orientation reproduction position OP are referred to by the operator as coordinates different from at least one (for example, all) of the teaching position TP n( X n, Y n, Z n) defined in the welding work program 200 and located closer to the origin (that is, the base frame 20) of the robot coordinate system C 1 than the at least one teaching position TP n.The processor 50 proceeds to step S 33 when it is determined YES, that is, when the input of the orientation reproduction position OP is received from the operator, and repeats step S 32 when it is determined NO. Thus, in the present embodiment, the processor 50 functions as an input receiving unit 84 (FIG. 15 ) that receives the input of the orientation reproduction position OP different from the teaching position TP n.In step S 33, the processor 50 generates the orientation reproduction program 204 based on the learning orientation OR n. extracted in step S 31. More specifically, the processor 50 first generates a position data table 206 for the alignment reproduction program 204 on the basis of the teaching alignment OR n extracted in step S 31 and the alignment reproduction position OP received in step S 32.FIG. 18 illustrates an example of the position data table 206. In the position data table 206 illustrated in FIG. 18, the coordinate data items are stored to which identifiers "OP1", "OP2", "OP3" and "OP4" are assigned, respectively. As illustrated in FIG. 18, the coordinates of the identifiers "OPn" (n=1, 2, 3, 4) share the coordinates (X 0, Y 0, Z 0) of the orientation reproduction position OP received in step S 32, and respectively include the coordinates (W n, P n, R n) of the learning orientation OR n. extracted in step S 31. The processor 50 generates the position data table 206 as illustrated in FIG. 18 on the basis of the learning orientation OR n extracted in step S 31 and the orientation reproduction position OP received in step S 32.Next, the processor 50 generates the alignment reproduction program 204 based on the generated position data table 206. FIG. 19 illustrates an example of the alignment reproduction program 204. In the orientation reproduction program 204 illustrated in FIG. 19, for example, a code "MOVE [OP3] VELOCITY [V13]" in the fifth line is a positioning instruction INo for moving the welding gun 14 by the robot 12 at a speed V=V 13[ mm / s], and for positioning the welding gun 14 at the orientation reproduction position OP and in the teaching orientation OR 3, which are indicated by the identifier [OP3].The speed V n: "VELOCITY [Vn]" (n=11,12,13,14) defined in the alignment reproduction program 204 may be set to a speed different (more specifically, lower) from the speed V n( n=1, 2, 3, 4) defined in the welding work program 200 (for example, V 11= V 12= V 13= V 14< V 1= V 2= V 3= V 4).When reading the positioning instruction INo in the fifth line during the execution of the alignment reproduction program 204, the processor 50 acquires the coordinates (X 0, Y 0, Z 0, W 3, P 3, R 3), which are indicated by the identifier "OP 3", from the position data table 206. Then, the processor 50 functions as the operation execution unit 62, and operates the robot 12 in the robot coordinate system C 1 to position the welding gun 14 at the coordinates (X 0, Y 0, Z 0, W 3, P 3, R 3).On the other hand, the code "PRESSURE CONDITION [1]" in the 2 ith row (i=1, 2, 3, 4) of the orientation replication program 204 is a pressurization instruction IN R for driving the servomotor 40 of the welding gun 14 according to the welding condition 1 assigned with the identifier [1] to cause the welding gun 14 to pressurize the pressurization target object. As described above, the alignment reproduction program 204 does not include the welding instruction IN W. defined in the welding operation program 200.In reading the pressurization instruction IN R during the execution of the alignment reproduction program 204, the processor 50 refers to the welding condition data table 1 assigned with the identifier [1], acquires the pressing force F 1= 2 [ kN], and controls the servomotor 40 of the welding gun 14 according to the pressing force command F C_1(= 2 [ kN]) corresponding to the pressing force F 1.As described above, in the present embodiment, the processor 50 generates the position data table 206 on the basis of the learning orientation OR n extracted in step S 31 and the orientation reproduction position OP received in step S 32, and generates the orientation reproduction program 204 on the basis of the position data table 206. Thus, the processor 50 functions as a program generation unit 82 (FIG. 15 ) that generates the orientation reproduction program 204 on the basis of the teaching orientation OR n and the orientation reproduction position OP.Return to Fig. 16. In step S 34, the processor 50 determines whether or not an alignment reproduction program start command has been received from the operator or the host controller. The processor 50 proceeds to step S 35 if YES is determined, and repeats step S 34 if NO is determined.In step S 35, the processor 50 executes a pressing force detection process. This step S 35 will be described with reference to FIG. 17. Note that, in the flow illustrated in FIG. 17, the same processing as in the flow in FIG. 5 is denoted by the same step numbers, and redundant descriptions are omitted.In step S 41, the processor 50 executes the positioning instruction INo in the alignment reproduction program 204. More specifically, the processor 50 functions as the operation execution unit 62 to read the positioning instruction INo "MOVE [OP1] VELOCITY [V11]" defined in the first line of the orientation reproduction program 204 and move the robot 12 at the speed V 11 to position (i.e., position) the welding gun 14 at the orientation reproduction position OP and in the teaching orientation OR 1, at the coordinates (X 0, Y 0, Z 0, W 1, P 1, R 1) of the identifier "OP1").In step S 42, the processor 50 determines whether or not the welding gun 14 is positioned at the orientation reproduction position OP and the n-th learning orientation OR n (that is, at the coordinates (X 0, Y 0, Z 0, W n, P n, R n) of the identifier "OPn"). More specifically, the processor 50 determines whether or not the welding gun 14 is positioned in the orientation reproduction position OP and in the n-th learning orientation OR n based on the feedback FB 2 from the rotation detection sensor RS 1.After it is determined that the welding gun 14 is positioned at the orientation reproduction position OP and in the n-th teaching orientation OR n (that is, when it is determined as YES), the processor 50 stops the operation of the robot 12 and proceeds to step S 4. As a result, the welding gun 14 stops while being positioned in the orientation reproduction position OP and the n-th teaching orientation OR n. On the other hand, if NO is determined, the processor 50 returns to step S 42.In step S 43 after step S 4, the processor 50 controls the welding gun 14 according to the pressing force command F C_m( first pressing force command) corresponding to the pressing force F m defined in the welding condition m. More specifically, the processor 50 reads the pressurization instruction IN R in the 2 ithline in the alignment reproduction program 204.Then, in step S 43, the processor 50 acquires the pressing force F 1(= 2 [ kN]) defined in the welding condition 1 assigned with the identifier [1] according to a code "CONDITION [1]" of the read pressurization instruction IN R. Then, the processor 50 generates the pressing force command F C_1(= 2 [ kN]) corresponding to the pressing force F 1 detected from the welding condition 1, and drives the servo motor 40 of the welding gun 14 according to the pressing force command F C_1.Then, when the feedback FB 1 from the above-described load detection sensor LS reaches a value corresponding to the pressing force command F C_1 the processor 50 stops the servo motor 40. Next, the processor 50 executes step S 6, functions as the pressing force detection unit 64, and detects the pressing force F measured by the pressing force sensor 16 from the pressing force sensor 16 at the end of step S 43 (that is, when the servomotor 40 is stopped).In step S 44, the processor 50 determines whether or not the pressing force F has been detected for all of the teaching orientations OR n defined in the orientation reproduction program 204. When it is determined to be YES, the processor 50 terminates the flow illustrated in FIG. 17, and thus terminates the flow in FIG. 16 as well; on the other hand, when it is determined to be NO, the processor 50 proceeds to step S 45.In step S 45, the processor 50 executes the positioning instruction INo defined in the subsequent line in the alignment reproduction program 204. For example, when step S 45 is executed for the first time, the processor 50 executes a positioning instruction INo "MOVE [OP 2] VELOCITY [V 12]" in the third row to move the welding gun 14 at a speed V 12 to position the welding gun 14 at the orientation reproduction position OP and in the second teaching orientation OR 2.Then, the processor 50 returns to step S 42. In this manner, the processor 50 repeatedly executes the loop of steps S 44, S 4, S 43, S 6, S 44, and S 45 until it is determined YES in step S 42, and detects the pressing force F each time the welding gun 14 is positioned at the orientation reproduction position OP and the n-th teaching orientation OR n in step S 6.That is, the processor 50 executes steps S 41 and S 45 according to the orientation reproduction program 204 to change only the orientation of the welding gun 14 to the teaching orientation OR n without changing the position (that is, the orientation reproduction position OP) of the welding gun 14 (that is, while the orientation reproduction position OP is maintained), and detects the pressing force F in step S 6.After completion of the flow illustrated in FIG. 17, the processor 50 executes the welding work program 200 to perform the actual welding work on the workpiece. When the welding work program 200 for the actual welding work is executed, the processor 50 functions as the command correction unit 66 to correct the pressing force command F C_1 in each teaching orientation OR n on the basis of the pressing force F acquired in step S 6 of step S 35, thereby obtaining the pressing force command F C_1'.As described above, in the present embodiment, the processor 50 corrects the pressing force command F C according to the orientation OR of the welding gun 14 by functioning as the operation execution unit 62, the pressing force acquisition unit 64, the command correction unit 66, the orientation extraction unit 78, the program generation unit 82, and the input reception unit 84. Therefore, the operation execution unit 62, the pressing force acquisition unit 64, the command correction unit 66, the orientation extraction unit 78, the program generation unit 82, and the input reception unit 84 constitute a device 110 (FIG. 15 ) that corrects the pressing force command F C according to the orientation OR of the welding gun 14.In the apparatus 110, the operation execution unit 62 executes the orientation reproduction program 204 including the positioning instruction INo to operate the robot 12 so as to position the welding gun 14 at the orientation reproduction position OP and the teaching orientation OR n different from the teaching position TP n but not including the welding instruction IN W whereby the welding gun 14 is positioned by the robot 12 at the orientation reproduction position OP and the teaching orientation OR n (steps S 41 and S 45).Then, the pressing force acquisition unit 64 acquires the pressing force F at the time when the operation execution unit 62 positions the welding gun 14 at the orientation reproduction position OP and in the teaching orientation OR n (step S 6). With this configuration, by executing the orientation reproduction program 204 for reproducing the teaching orientation OR n defined in the welding operation program 200, it is possible to position the welding gun 14 in the teaching orientation OR n and effectively acquire the pressing force F for correcting the pressing force command F C in the teaching orientation OR n.Further, in the apparatus 110, the orientation extraction unit 78 extracts the teaching orientation OR n from the welding work program 200 (step S 31), and the program generation unit 82 generates the orientation reproduction program 204 based on the teaching orientation OR n. extracted by the orientation extraction unit 78. According to this configuration, since the computer can automatically generate the orientation reproduction program 204, the operator's labor can be reduced.Moreover, in the device 110, the input receiving unit 84 receives the input of the alignment reproduction position OP (step S 32), and the program generating unit 82 generates the alignment reproduction program 204 further on the basis of the alignment reproduction position OP received by the input receiving unit 84. According to this configuration, for example, the operator can arbitrarily designate the orientation reproduction position OP as coordinates in the vicinity of the origin (the base frame 20) of the robot coordinate system C 1. As a result, since the operation range of the robot 12 can be reduced during the execution of the alignment reproduction program 204, it can be reliably prevented that the robot 12 and peripheral equipment interfere with each other when the alignment reproduction program 204 is executed.In step S 32 described above, the processor 50 may function as the input receiving unit 84 and receive an input of an allowable operating range RG of the robot 12 instead of the orientation reproduction position OP. For example, the processor 50 generates the input image IM for inputting the allowable operating range RG and displays the image on the display device 60. The operator can operate the input device 58 while watching the input image IM to transmit, to the processor 50, an input for designating the allowable operating range RG (for example, an input for designating a radius R from the origin of the robot coordinate system C 1).In this case, after determining YES in step S32, the processor 50 generates a position data table 206' in step S33 based on the learning orientation OR n extracted in step S31 and the allowable operating range RG received in step S32. FIG. 20 illustrates an example of the position data table 206'.In the example illustrated in FIG. 20, the coordinates assigned to the identifier "OPn" (n=11,12,13,14) and stored in the position data table 206' have the coordinates (X j, Y j, Z j) ( j=1,2,3,4) of the alignment reproduction position OP. The coordinates (X j, Y j, Z j) of the orientation reproduction position OP are different from at least one (for example, all) teaching position TP n( X n, Y n, Z n) defined in the welding work program 200, and are automatically generated by the processor 50 as coordinates within the allowable work range RG received in step S 32.Then, in step S 33, the processor 50 functions as the program generation unit 82, and generates the alignment reproduction program 204 on the basis of the position data table 206'. That is, in this case, the processor 50 functions as the program generation unit 82, and generates the orientation reproduction program 204 on the basis of the learning orientation OR n extracted by the orientation extraction unit 78 in step S 31 and the allowable operating range RG received by the input reception unit 84 in step S 32.Next, another function of the welding robot system 80 will be described with reference to FIGS. 21 to 23. The welding robot system 80 further executes a flow illustrated in FIG. 22. Note that in the flow illustrated in FIG. 22, the same processing as in the flow in FIG. 16 is denoted by the same step numbers, and redundant descriptions are omitted.After the start of the flow in FIG. 22, the processor 50 executes step S 1 to acquire the welding work program 200, and then executes step S 31 and functions as the orientation extraction unit 78 to extract the teaching orientation OR n from the welding work program 200. Next, the processor 50 executes step S 32 and determines whether or not the input of the alignment reproduction position OP (X 0, Y 0, Z 0) is received.After determining YES in step S 32 (that is, when the input of the orientation reproduction position OP (X 0, Y 0, Z 0) is received), the processor 50 functions as the orientation difference calculation unit 74 in step S 51 and obtains the difference φ between the plurality of teaching orientations OR n, which were extracted from the welding work program 200 in step S 31.More specifically, the processor 50 calculates each of a difference φ 1_2 between the first teaching orientation OR 1( W 1, P 1, R 1) and the second teaching orientation OR 2( W 2, P 2, R 2), by the above-described method in step S 21, a difference φ 1_3 between the first learning orientation OR 1( W 1, P 1, R 1) and the third learning orientation OR 3( W 3, P 3, R 3), and a difference φ 1_4 between the first teaching orientation OR 1( W 1, P 1, R 1) and the fourth teaching orientation OR 4( W 2, P 2, R 2).Further, the processor 50 obtains each of a difference φ 2_3 between the second teaching orientation OR 2( W 2, P 2, R 2) and the third teaching orientation OR 3( W 3, P 3, R 3), a difference φ 2_4 between the second learning orientation OR 2( W 2, P 2, R 2) and the fourth learning orientation OR 4( W 4, P 4, R 4), and a difference φ 3_4 between the third teaching orientation OR 3( W 3, P 3, R 3) and the fourth teaching orientation OR 4( W 4, P 4, R 4).In step S 52, the processor 50 functions as the difference determination unit 76, and determines whether each difference φ obtained in step S 51 is less than the predetermined threshold φ th. More specifically, the processor 50 compares each of the difference φ 1_2, the difference φ 1_3, the difference φ 1_4, the difference φ 2_3, the difference φ 2_4 and the difference φ 3_4 with the threshold φ th, and determines whether φ 1_2< φ th, φ 1_3< φth, φ1_4<φth, φ2_3<φth, φ 2_4< φ th or φ 3_4< φ th applies.When the difference φ among the first teaching orientation OR 1, the second teaching orientation OR 2 and the fourth teaching orientation OR 4 is smaller than the threshold φ th as described in the above embodiment, the processor 50 determines that φ 1_2< φ th, φ 1_4< φ th and φ 2_4< φ th apply.In step S 53, the processor 50 functions as the program generation unit 82, and generates the alignment reproduction program 204. More specifically, the processor 50 generates a position data table 206" for the orientation reproduction program 204 on the basis of the teaching orientation OR n, in which the difference φ is equal to or greater than the threshold φ th among the plurality of teaching orientations OR n, which were extracted in step S 31, and the orientation reproduction position OP, which was received in step S 32.In the present embodiment, in step S 52 described above, it is determined that the difference φ among the first teaching orientation OR 1, the second teaching orientation OR 2 and the fourth teaching orientation OR 4 is smaller than the threshold φ th( that is, φ 1_2< φ th, φ 1_4< φ th and φ 2_4< φ th hold). Therefore, the processor 50 generates the position data table 206" illustrated in FIG. 24 on the basis of the first teaching orientation OR 1, the third teaching orientation OR 3 and the orientation reproduction position OP received in step S 32.Then, the processor 50 generates an alignment reproduction program 204' illustrated in FIG. 25 based on the position data table 206". The alignment reproduction program 204' includes a positioning instruction INo in the 2i-1th line (i=1, 2) and a pressurizing instruction IN R in the 2i-th line. After that, the processor 50 executes step S 34 and proceeds to step S 54 if YES is determined.In step S 54, the processor 50 executes a pressing force detection process. This pressing force detection process is illustrated in FIG. 23. Note that in the flow illustrated in FIG. 23, the same processing as in the flow in FIG. 12 or 17 is denoted by the same step numbers, and redundant descriptions are omitted.The processor 50 detects the pressing force F by executing the above-described steps S41 to S43, S14, S15, S44, and S45 according to the alignment reproduction program 204' generated in step S53. As a result, the processor 50 detects the pressing force F in the first teaching orientation OR 1 and the pressing force F in the third teaching orientation OR 3.After ending the flow in FIG. 23, the processor 50 executes the welding operation program 200 for the actual welding operation, and functions as the command correction unit 66 during the execution of the welding operation program 200 to obtain the correction amount ΔF at each of the first teaching orientation OR 1 and the third teaching orientation OR 3 based on the pressing force F acquired in step S 15 during step S 54, and correct the original pressing force command F C_1 with the correction amount ΔF to obtain the pressing force command F C_1' at each of the first teaching orientation OR 1 and the third teaching orientation OR 3.On the other hand, the processor 50 corrects, for the second learning orientation OR 2 and the fourth learning orientation OR 4 each original pressing force command F C_1 using the correction amount ΔF obtained for the first learning orientation OR 1. In this way, the processor 50 obtains the pressing force command F C_1' at each of the second teaching orientation OR 2 and the fourth teaching orientation OR 4. That is, the processor 50 corrects the original pressing force command F C_1 using the common correction amount ΔF in the first learning orientation OR 1, the second learning orientation OR 2 and the fourth learning orientation OR 4, which are close to each other.As described above, in the present embodiment, the processor 50 functions as the operation execution unit 62, the pressing force detection unit 64, the command correction unit 66, the position detection unit 72, the orientation difference calculation unit 74, the difference determination unit 76, the orientation extraction unit 78, the program generation unit 82, and the input reception unit 84 to correct the pressing force command F C according to the orientation OR of the welding gun 14.Therefore, the operation execution unit 62, the pressing force detection unit 64, the command correction unit 66, the position detection unit 72, the orientation difference calculation unit 74, the difference determination unit 76, the orientation extraction unit 78, the program generation unit 82, and the input reception unit 84 constitute a device 120 (FIG. 21 ) that corrects the pressing force command F C according to the orientation OR of the welding gun 14.In the apparatus 120, the orientation reproduction program 204' is generated using only the teaching orientations OR n, in which the difference φ between the orientations OR is equal to or greater than the threshold φ th (that is, having different orientations OR), among the plurality of the teaching orientations OR n defined in the welding work program 200. According to this configuration, it is possible to optimize the number of alignments OR for positioning the welding gun 14 in the alignment reproduction program 204'.In the present embodiment, the processor 50 may generate the alignment reproduction program 204 illustrated in FIG. 19 instead of the alignment reproduction program 204' in step S 53. In this case, steps S 51 and S 52 may be omitted from the flow in FIG. 22. Then, after determining NO in step S 44 in FIG. 23, the processor 50 may execute steps S 21 and S 22 illustrated in FIG. 14.In the embodiment of FIGS. 15 and 21, a case where the processor 50 functions as the program generation unit 82 and generates the alignment reproduction programs 204 and 204' will be described. However, the present invention is not limited thereto, and in the embodiment in FIG. 15 or 21, the processor 50 may acquire the alignment reproduction program 204 or 204' by, for example, downloading from another computer (a host controller, a production management server, or the like).In this case, the orientation extraction unit 78, the program generation unit 82, and the input reception unit 84 may be omitted from the apparatus 110 or 120. In this case, the processor 50 executes step S35 illustrated in FIG. 17 or step S54 illustrated in FIG. 23 according to the downloaded alignment reproduction program 204 or 204'.In the above-described embodiment, a case where the processor 50 corrects the pressing force command F C_1 in executing the welding work program 200 for the actual welding work is described. However, the processor 50 may correct the pressing force command F C_1 even during the execution of the flow in FIG. 5, FIG. 12, FIG. 14, FIG. 16, or FIG. 22.For example, in the flow in FIG. 5, FIG. 12, or FIG. 14, after determining YES in step S 7, the processor 50 may obtain the pressing force command F C_1' by correcting the pressing force command F C_1 in each learning orientation OR n based on the pressing force F acquired in step S 6 or S 15. Then, the processor 50 may create a data table DT in which the pressing force command F C_1', which was obtained for each teaching orientation OR n is stored in association with the teaching orientation OR n.In this case, when the welding instruction IN W in the welding work program 200 is read out in the actual welding work, the processor 50 acquires, from the data table DT, the pressing force command F C_1' corresponding to the teaching orientation OR n( that is, the teaching orientation OR n, which is defined in the positioning instruction IN P in the row before the welding instruction IN W) in which the welding gun 14 is currently positioned.Further, in the flow in FIG. 16 or 22, the processor 50 may obtain the pressing force command F C_1' by correcting the pressing force command F C_1 in each learning orientation OR n based on the pressing force F detected in step S 6 or S 15 at the end of step S 35 or S 54 (that is, after determining YES in step S 44).In the flow in FIG. 5, a case where the processor 50 causes the robot 12 to move the welding gun 14 at the speed V n defined in the positioning instruction IN P( code "Vn") in the welding work program 200 in step S 2 or S 8 is described. However, in step S 2 or S 8 in FIG. 5, the processor 50 may move the welding gun 14 at a speed V n' different from the speed V n defined in the welding work program 200 (for example, lower than the speed V n). In this case, a flag FL' for moving the welding gun 14 at the speed V n' may be set in the controller 18. Alternatively, the flag FL' may be transmitted to the code of the positioning instruction IN P in the welding work program 200 acquired in the above-described step S1.In the above-described embodiment, a case where the processor 50 stops the servomotor 40 when the feedback FB 1 from the load detection sensor LS reaches a value corresponding to the pressing force command F C_1 in steps S 5 and S 43 is described. However, the present invention is not limited thereto, and in step S 5 or S 43, the processor 50 may stop the servo motor 40 when the movable welding tip 44 is forcibly stopped by coming into contact with the non-pressurizing object (fixed welding tip 36).In this case, the processor 50 may stop the servo motor 40 when the movable welding tip 44 is forcibly stopped by coming into contact with the workpiece even if the welding instruction IN W is executed in the welding operation program 200 in the actual welding operation. The pressurization target object is not limited to the fixed welding tip 36, and may be any object (for example, an iron plate) fixed to the fixed arm 34.In this case, the processor 50 may execute the flow illustrated in FIG. 5, FIG. 12, FIG. 14, FIG. 16, or FIG. 22 according to a computer program PG 2 stored in the memory 52 in advance. The functions of the apparatus 70, 90, 100, 110, or 120 (i.e., the operation execution unit 62, the pressing force detection unit 64, the command correction unit 66, the position detection unit 72, the orientation difference calculation unit 74, the difference determination unit 76, the orientation extraction unit 78, the program generation unit 82, and the input reception unit 84) executed by the processor 50 may be function modules implemented by the computer program PG.The welding operation program 200 illustrated in FIG. 6, the alignment reproduction program 204 illustrated in FIG. 19, and the alignment reproduction program 204' illustrated in FIG. 25 are merely examples and may include any other types of instructions. For example, in the welding work program 200 illustrated in FIG. 6, the positioning instruction IN P is defined in the 2i-1th row, and the welding instruction IN W is defined in the 2i-th row. However, in the welding work program 200, the positioning instruction IN P and the welding instruction IN W may be defined in the i-th row (that is, in the same row).Similarly, in the alignment reproduction program 204 or 204', the positioning instruction INo and the pressurization instruction IN R may be defined in the i-th row (the same row). The number of teaching positions TP n and the number of teaching orientations OR n, which are defined in the welding work program 200, are not limited to four, and may be one, five, or more. The same applies to the number of teaching alignments OR n. defined in the alignment reproduction program 204 or 204'.In the welding work program 200 illustrated in FIG. 6, a case is described in which the identifier "TPn" (n=1, 2, 3, 4) is defined in the positioning instruction IN P and the position data table 202 illustrated in FIG. 7 is separately generated. However, the present invention is not limited thereto, and instead of the identifier "TPn", the coordinates (X n, Y n, Z n, W n, P n, R n) may be directly described as a code in the positioning instruction INP. The same applies to the positioning instruction INo of the alignment reproduction program 204 or 204'.In the welding operation program 200 illustrated in FIG. 6, a case is described in which the identifier [m] (m=1 in the example of FIG. 6 ) corresponding to the welding condition m is described in the welding instruction IN W and the data table of the welding condition m is separately created as illustrated in FIG. 8. However, the present invention is not limited thereto, and instead of the identifier "m", the value of the welding condition m (that is, the pressing force F m, the welding current I m and the welding time t m) may be directly described as a code in the welding instruction IN W. The same applies to the pressurization instruction IN R of the alignment reproduction programs 204 and 204', respectively.The operator can make a change to a part of the welding work program 200 acquired in the above-described step S1, except for the positioning instruction IN P( more specifically, the teaching orientation OR n), to obtain a welding work program 200'. The processor 50 may execute the welding work by executing the changed welding work program 200' at the time of the actual welding work.For example, before executing the actual welding work, the operator may change the program name of the welding work program 200 (FIG. 6 ) acquired in step S 1, may process or add a code other than the positioning instruction IN P in the welding work program 200, or may provide the flag FL described above.Further, the operator may replace the welding instruction IN W in the welding work program 200 acquired in step S 1 with an instruction to execute the pressing force acquisition operation FO, and the processor 50 may execute the flow in FIG. 5, FIG. 12, or FIG. 14 according to the replaced welding work program 200'. The welding work program 200 acquired in step S1 and the changed welding work program 200' may both be regarded as welding work programs that cause the robot 12 and the welding gun 14 to perform the welding work.Further, the welding work program 200 or 200' may include a plurality of programs. For example, the welding work program 200 illustrated in FIG. 6 may include a first program 200A having instruction codes from the first line to the fourth line and a second program 200B having instruction codes from the fifth line to the eighth line. Similarly, the alignment reproduction program 204 or 204' may include multiple programs.In the above-described embodiment, a case where the welding condition 1 assigned with the identifier [1] is used in the welding work program 200 and the orientation reproduction programs 204 and 204' (that is, the code "CONDITION [1]") is described. However, another welding condition m may also be used.In the above-described embodiment, a case where the processor 50 acquires the above-described correction amount ΔF and corrects the first pressing force command F C_1 with the correction amount ΔF to acquire the second pressing force command F C_1' when the actual welding work is performed will be described. However, the present invention is not limited thereto, and the processor 50 may determine the second pressing force command F C_1' in each learning orientation OR n before the actual welding work, based on the pressing force F acquired in the above-described step S 6 or S 15.In this case, the processor 50 may determine the second pressing force command F C_1' using the correction amount ΔF obtained as described above, or may determine the second pressing force command F C_1' by any calculation using the first pressing force command F C_1 and the pressing force F without using the correction amount ΔF. Then, the processor 50 may correct the first pressing force command F C_1 by replacing with the predetermined second pressing force command F C_1' during the execution of the actual welding work (i.e., the welding work program 200 or 200').In the above-described embodiment, a case where the functions of the devices 70, 90, 100, 110, and 120 (the operation execution unit 62, the pressing force detection unit 64, the command correction unit 66, the position detection unit 72, the orientation difference calculation unit 74, the difference determination unit 76, the orientation extraction unit 78, the program generation unit 82, and the input reception unit 84) are implemented in the controller 18 is described.However, the present invention is not limited thereto, and at least one of the functions of the device 70, 90, 100, 110, or 120 (for example, the operation execution unit 62, the orientation extraction unit 78, the program generation unit 82, and the input reception unit 84) may be implemented in a teaching device (a teaching pendant, a tablet terminal device, or the like) that teaches an operation by the robot 12 or another computer such as a PC. In this case, a processor of the other computer functions as the device 70, 90, 100, 110, or 120.The robot 12 is not limited to a vertical articulated robot, but may be, for example, any type of robot such as a horizontal articulated robot or a parallel robot. In addition, the concept of the present invention is not limited to C-shaped spot welding guns, and may be applied to any other welding guns, such as X-shaped spot welding guns. Although the present disclosure has been described above with reference to embodiments, the above-described embodiments do not limit the scope of the invention claimed in the claims.List of Reference Numerals10, 10', 80 welding robot system 12 robot 14 welding gun 16, 16' pressing force sensor 18 controller 62 operation execution unit 64 pressing force detection unit 66 command correction unit 70, 90, 100, 110, 120 device 72 position detection unit 74 orientation difference calculation unit 76 difference determination unit 78 orientation extraction unit 82 program generation unit 84 input reception unit 200 welding work program 204, 204' orientation reproduction programReferences included in the specificationThis list of documents cited by the applicant has been produced in an automated manner and is only included for the better information of the reader. The list is not part of the German patent application or utility model application. The DPMA does not take any adhesion for any faults or omissions.Patent Literature citedJP 2001-47249 A

[0003]

Claims

An apparatus configured to correct a pressing force command defining a pressing force of a welding gun in response to an orientation of the welding gun, the welding gun being moved by a robot and configured to press a workpiece to perform welding on the workpiece, the apparatus comprising: an operation execution unit configured to operate the robot such that the welding gun is positioned in a teaching orientation defined in a welding operation program to cause the robot and the welding gun to perform welding work; a pressing force acquisition unit configured to acquire the pressing force when the welding gun is positioned in the teaching orientation by the operation execution unit and is driven according to a first pressing force command; and a command correction unit configured to obtain a second pressing force command for when the welding gun is driven in the teaching orientation during execution of the welding operation program by correcting the first pressing force command based on the pressing force detected by the pressing force detection unit.The apparatus according to claim 1, wherein the welding operation program includes: a positioning instruction for positioning the welding gun at a teaching position and in the teaching orientation by operating the robot; and a welding instruction for activating the welding gun to perform welding on a workpiece, wherein the operation execution unit is configured to execute the positioning instruction included in the welding operation program to position the welding gun at the teaching position and in the teaching orientation by operating the robot while the welding instruction is not executed, and wherein the pressing force acquisition unit is configured to acquire the pressing force when the operation execution unit positions the welding gun at the teaching position and in the teaching orientation.The apparatus according to claim 1, wherein the operation execution unit is configured to execute an orientation reproduction program including a positioning instruction to position, by operating the robot, the welding gun in the teaching orientation and at a position other than a teaching orientation defined in the welding operation program while not including a welding instruction for activating the welding gun to perform welding on a workpiece, and to position the welding gun by the robot at the other position and in the teaching orientation, and wherein the pressing force acquisition unit is configured to acquire the pressing force when the operation execution unit positions the welding gun at the other teaching position and in the teaching orientation.The apparatus according to claim 3, further comprising: an orientation extraction unit configured to extract the learning orientation from the welding work program; and a program generation unit configured to generate the orientation reproduction program based on the learning orientation extracted by the orientation extraction unit.The apparatus according to claim 4, further comprising an input receiving unit configured to receive an input of the other position, wherein the program generating unit is configured to generate the alignment reproducing program further based on the other position received by the input receiving unit.The apparatus according to claim 4, further comprising an input receiving unit configured to receive an input of an allowable operating range of the robot during execution of the orientation reproduction program, wherein the program generating unit is configured to generate the orientation reproduction program further based on the allowable operating range received by the input receiving unit.The apparatus according to any one of claims 1 to 6, wherein the pressing force acquisition unit is configured to acquire a first pressing force when the operation execution unit positions the welding gun in a first teaching orientation, wherein the command correction unit is configured to obtain a correction amount for correcting the first pressing force command for driving the welding gun in the first teaching orientation to a second pressing force command based on the first pressing force, the apparatus further comprising: an orientation difference calculation unit configured to obtain a difference between a second teaching orientation and the first teaching orientation; A difference determination unit configured to determine whether or not the difference obtained by the orientation difference calculation unit is less than a predetermined threshold, wherein the operation execution unit is configured to not execute an operation for positioning the welding gun in the second learning orientation when the difference determination unit determines that the difference is less than the threshold, and wherein the command correction unit is configured to obtain the second pressing force command for the second learning orientation by correcting the first pressing force command for driving the welding gun in the second learning orientation using the correction amount obtained in the first learning orientation.The apparatus according to any one of claims 1 to 6, wherein the welding work program defines a first teaching position and a first teaching orientation, and a second teaching position and a second teaching orientation at which the welding gun is to be positioned, wherein the pressing force acquisition unit is configured to acquire a first pressing force when the operation execution unit positions the welding gun at the first teaching position and in the first teaching orientation, wherein the command correction unit is configured to: obtain the second pressing force command for the first teaching position and the first teaching orientation by correcting the first pressing force command based on the first pressing force; and estimating the second pressing force command for the second teaching position and the second teaching orientation based on the obtained second pressing force command and the first teaching position and the second teaching position defined in the welding work program, and wherein the operation execution unit is configured to not execute an operation for positioning the welding gun in the second teaching orientation.The apparatus according to any one of claims 1 to 8, wherein the pressing force detection unit is configured to detect the pressing force measured by a pressing force sensor when the welding gun positioned in the teaching orientation by the operation execution unit is driven according to the first pressing force command.The apparatus according to any one of claims 1 to 8, wherein the welding gun has a movable welding tip and a position sensor configured to detect a position of the movable welding tip, the apparatus further comprising a position detection unit configured to detect: a first position detected by the position sensor when the welding gun positioned at a predetermined reference orientation is driven according to the first pressing force command to press a pressing target by the movable welding tip; A second position detected by the position sensor when the welding gun positioned in the learning orientation by the operation execution unit is driven according to the first pressing force command to press the pressing target by the movable welding tip, and wherein the pressing force detection unit obtains the pressing force in the learning orientation by a predetermined calculation based on the first position and the second position detected by the position detection unit.A controller of the robot comprising the apparatus according to any one of claims 1 to 10.A method for correcting a pressing force command defining a pressing force of a welding gun in response to an orientation of the welding gun, the welding gun being moved by a robot and configured to press a workpiece to perform welding on the workpiece, the method comprising: operating, by a processor, the robot such that the welding gun is positioned in a teaching orientation defined in a welding operation program to cause the robot and the welding gun to perform a welding operation; detecting, by the processor, the pressing force when the welding gun is positioned in the teaching orientation and is driven according to a first pressing force command; obtaining, by the processor, a second pressing force command therefor when the welding gun is driven in the teaching orientation during the execution of the welding operation program by correcting the first pressing force command based on the detected pressing force.

Citation Information

Patent Citations

  • Spot welding system and method with the ability to make constant the pressing force exerted on a workpiece to be pressed

    DE102015013987A1

  • spot welding system FOR MEASURING THE POSITION OF THE WELDING POINT WHERE THE WELDING WILL BE MADE

    DE102016117038A1

  • spot welding system

    DE102020113610A1

  • JP002001047249A

  • JP002004195545A