9. Coding

9.1. Introduction

Click the command on the left to add a program node to the program tree. When the program is running, the currently executed program node is highlighted in green.

In manual mode, click the first icon on the right side of the node to make the robot execute the instruction alone, and the second icon is to edit the content of the node.

../_images/0014.png

Figure 9.1-1 Program tree interface

Click “⇄” to switch modes, and the teaching program text can be changed to the editing state.

../_images/0024.png

Figure 9.1-2 Teaching program editing status

The icons to the right of the program name are described as follows:

Note

../_images/0034.png

name: Expand/Zoom

effect: Expand/zoom the program tree interface

Note

../_images/0044.png

name: Add teaching points

effect: Add a local teaching point to the current program

Note

../_images/0054.png

name: Rename

effect: Rename the current program

9.2. Tool bar

Modify the program tree using the toolbar at the bottom of the program tree.

Note

../_images/0064.png

name: Open

effect: Open user program file

Note

../_images/0074.png

name: New build

effect: Select a template to create a new program file

Note

../_images/0082.png

name: Import

effect: Import the file into the user program folder

Note

../_images/0092.png

name: Export

effect: Export user program files to a local point.

Note

../_images/0102.png

name: Save

effect: Save file edits

Note

../_images/0112.png

name: Save as

effect: Rename the file and store it in the user program or template program folder.

Note

../_images/0122.png

name: Copy

effect: Duplicates a node and allows it to be used for other operations (eg: paste it elsewhere in the program tree).

Note

../_images/0132.png

name: Paste

effect: Allows you to paste previously cut or copied nodes.

Note

../_images/0142.png

name: To cut

effect: Cuts a node and allows it to be used for other operations (eg: paste it elsewhere in the program tree).

Note

../_images/0152.png

name: Delete

effect: Deletes a node from the program tree.

Note

../_images/0163.png

name: Move up

effect: Move the node up.

Note

../_images/0173.png

name: Move down

effect: Move the node down.

Note

../_images/0183.png

name: Toggle edit mode

effect:The program tree mode and lua editing mode switch each other.

The icons on the top right are described as follows:

Note

../_images/240.png

name: Programming add/edit

effect: Add/edit the contents of the current program command

Note

../_images/241.png

name: Robot Model

effect: Return to the robot 3D model interface

Note

../_images/242.png

name: NewDofile subroutine

effect: When there is a NewDofile instruction in the current program command, click to enter and select the subroutine name to view the subroutine content.

Note

../_images/243.png

name: Modbus TCP Settings

effect: Configure Modbus TCP communication parameters

Note

../_images/244.png

name: Current program backup

effect: Record the changes made to the current program

Note

../_images/245.png

name: Local teaching point

effect: Applies only to the teaching points of the current program

9.3. Program command

The left side is mainly for adding program commands. Click the icon above each keyword to enter the detailed interface of adding program commands on the right. There are two main operations for adding program commands to files:

    1. Open the relevant command and click the Apply button to add the command to the program.

    1. click the “Add” button first, at this time the command is not saved in the program file, and you need to click “Apply” again to save the command in the file.

The second method often occurs when multiple commands of the same type are issued. We add an add button and display the content of the added command to this type of command. Click the Add button to add a command, and the added command displays all the added commands. , click “Apply” to save the added command to the opened file on the right.

9.4. Logic Command Interface

../_images/0192.png

Figure 9.4 Logic Command Interface

9.4.1. While command

Select the loop scenario of the While command, the scenario is as follows:

  • Always loop

  • Limited number of cycles: Enter the number of loops and variable name

  • Loop while expression is true: Click the input box to pop up the expression editor and select the corresponding expression according to the usage scenario

../_images/0202.png

Figure 9.4-1-1 While command interface

../_images/236.png

Figure 9.4-1-2 While command - Always loop

../_images/237.png

Figure 9.4-1-3 While command - Limited number of cycles

../_images/238.png

Figure 9.4-1-4 While command - Expression Editor

../_images/239.png

Figure 9.4-1-5 While command - Loop while expression is true

For ease of operation, you can enter any do content and edit other instructions in the program to insert them instead.

9.4.2. if…else command

Click the “if…else” button to enter the if…else command editing interface.

This command contains the following buttons:

  • Add else if: When there is no “else” expression, click this button to add an “else if” expression

  • Delete else if: When an “else if” expression exists, click this button to delete the “else if” expression.

  • Add else: Click this button to add an “else” expression

  • Delete else: Click this button to delete the “else” expression

After clicking the corresponding button to add, click the input box to pop up the expression editor and select the corresponding expression according to the usage scenario. After adding, click “Add” and “Apply”.

This instruction requires a certain programming foundation. If you need help, please contact us.

../_images/0212.png

Figure 9.4-2 if…else command interface

9.4.3. Goto command

Click the “Goto” button to enter the Goto command editing interface.

The Goto instruction is a jump instruction, enter the statement in the input box on the right, and click “Add” and “Apply” after editing. (This instruction requires a certain programming foundation, if you need help, please contact us)

../_images/0222.png

Figure 9.4-3 Goto command interface

9.4.4. Wait command

Click the “Wait” icon to enter the Wait command editing interface.

This instruction is a delay instruction, which is divided into three parts: “WaitMs”, “WaitDI” and “WaitAI”.

“WaitTime” command delay waiting time unit is milliseconds, input the number of milliseconds to wait, click “Add”, “Apply”.

../_images/0232.png

Figure 9.4-4 WaitTime command interface

“WaitDI” command, that is, single DI waiting, select the IO port number to be waited for, wait state, wait maximum time and wait timeout processing method, and click “Add” and “Apply”.

../_images/0242.png

Figure 9.4-5 WaitDI command interface

“WaitMultiDI” command, that is, multi-DI waiting, first select the multi-DI establishment conditions, then check the DI port and status that need to wait, and finally set the maximum waiting time and waiting timeout processing method, click “Add” and “Apply”.

../_images/0252.png

Figure 9.4-6 WaitMultiDI command interface

“WaitAI” command, select the analog quantity to be waited for, the value, the maximum waiting time and the waiting timeout processing method, and click “Add” and “Apply”.

../_images/0263.png

Figure 9.4-7 WaitAI command interface

9.4.5. Pause command

Click the “Pause” icon to enter the Pause command editing interface.

This instruction is a pause instruction. Insert this instruction into the program. When the program executes this instruction, the robot will be in a pause state. If you want to continue running, click the “Pause/Resume” button in the control area.

../_images/0273.png

Figure 9.4-8 Pause command interface

9.4.6. Dofile command

Click the “Dofile” icon to enter the Dofile command editing interface.

The Dofile command calls the internal program of the controller. When using the Dofile command, the called subroutine needs to be saved, and the main program does not need to be saved again if it has not changed. The Dofile command supports two-level calls, and two parameter settings need to be paid attention to. One is the level of the call, and the other is the ID number of the call. In principle, the same ID number cannot appear in the same program.

../_images/0283.png

Figure 9.4-9 Dofile command interface

9.4.7. Var command

Click the “Var” icon to enter the Var command editing interface.

This command is a variable system command, which is divided into two parts: Lua variable definition, variable query and Sys variable renaming, getting value, and setting value. Lua variable definition can declare a variable and assign an initial value, and cooperate with while, if-else and other commands Use the Lua variable query command to query the value of the input variable name in real time and display it in the status bar. The number of Sys variables is fixed, and you can rename them, get variable values, and set variable values. The values stored in this variable will not be cleared when the system is turned off.

../_images/0292.png

Figure 9.4-10 Var command interface

Important

Variable names must start with letters or underscores, not numbers or other special characters.

9.5. Motion command interface

../_images/0302.png

Figure 9.5 Motion command interface

9.5.1. PTP command

Click the “PTP” icon to enter the PTP command editing interface.

You can choose the point to be reached, and the smooth transition time setting can realize that the movement from this point to the next point is continuous. Whether to set the offset, you can choose to offset based on the base coordinate system and based on the tool coordinates, and pop up x, y, z, rx, ry, rz offset settings, PTP specific path is the optimal path automatically planned by the motion controller, click “Add” and “Apply” to save this command.

../_images/0311.png

Figure 9.5-1 PTP command interface

9.5.1.1. Point-to-Point Relative Motion

The robot moves a relative distance from the current position. In the PTP instruction addition page, select the point name as “CurrentPos”, choose the offset coordinate system as base coordinate system, tool coordinate system, or workpiece coordinate system as needed, and enter the offset value. The robot will then perform an offset motion along the set coordinate system based on its current position. (“CurrentPos” is a system point that does not require teaching)

../_images/515.png

Figure 9.5-1-1 PTP Relative Motion Command

Click the “Add” and “Apply” buttons to add a robot PTP relative motion command to the Lua program. Switch the robot to automatic mode and click the start button. In the example program, the robot will move 100mm along the X+ direction of the base coordinate system from its current position.

../_images/516.png

Figure 9.5-1-2 PTP Relative Motion Command Added

9.5.2. Lin command

Click the “Lin” icon to enter the Lin command editing interface.

The function of this command is similar to the “PTP” command, but the path of the point reached by this command is a straight line.

../_images/0322.png

Figure 9.5-2 Lin command interface

9.5.2.1. Linear Relative Motion

The robot moves a relative distance linearly from the current position. In the LIN instruction addition page, select the point name as “CurrentPos”, choose the offset coordinate system as base coordinate system, tool coordinate system, or workpiece coordinate system as needed, and enter the offset value. The robot will then perform an offset motion along the set coordinate system based on its current position. (“CurrentPos” is a system point that does not require teaching)

../_images/517.png

Figure 9.5-2-1 LIN Relative Motion Command

Click the “Add” and “Apply” buttons to add a robot linear relative motion command to the Lua program. Switch the robot to automatic mode and click the start button. In the example program, the robot will move 100mm along the X+ direction of the base coordinate system from its current position.

../_images/518.png

Figure 9.5-2-2 LIN Relative Motion Command Added

Robot linear relative motion supports functions such as smoothing, physical speed, and welding wire search.

Important

When the selection point name is “seamPos”, the straight line command is applied in the welding scene using the laser sensor. Due to the accumulated operating error during welding, “whether to offset” and “offset amount” are added.

Whether to offset: No, base coordinate system offset, tool coordinate system offset, laser original data offset;

Offset: Δx, Δy, Δz, Δrx, Δry, Δrz, range: -300~300;

../_images/0332.png

Figure 9.5-2-3 Lin command interface(Welding scene)

The LIN command allows selecting the motion speed mode as “Percentage” or “Physical Speed”:

  • Percentage: Input the debugging speed percentage. The robot moves at a percentage of its maximum speed. The actual robot motion speed is calculated as: V = Robot Maximum Speed × Global Speed Percentage × Debugging Speed Percentage. Hover the mouse over the small eye icon to the right of the “Debugging Speed” input box to display the actual physical speed (unit: mm/s) of the robot in both manual and automatic modes under the current debugging speed setting.

../_images/458.png

Figure 9.5-2-4 Input Percentage to Display Actual Physical Speed Value

  • Physical Speed: The input speed is the actual operating speed of the robot, unit mm/s; the input acceleration is usually set to twice the speed. (The maximum physical speed of the LIN command is limited by the global speed percentage. If the robot’s maximum operating speed is 1000mm/s and the global speed is 50%, then the maximum physical speed for the LIN command is 1000 × 50% = 500mm/s).

../_images/459.png

Figure 9.5-2-5 Input Actual Physical Speed

9.5.2.2. LIN command joint overspeed processing function

When using the Cartesian space linear motion command LIN, the constrained condition is the linear velocity, but the actual operation is affected by the workspace, and the angular velocity of the joint may have exceeded the limit when the linear velocity requirement is met. This function implements an optional handling strategy to deal with joint overspeed during LIN movements.

Step1: Click the Linear Motion Command button;

../_images/0342.png

Figure 9.5-3-1 Click the Linear Motion Command button

Step2: Select the linear motion command target waypoint;

../_images/0352.png

Figure 9.5-3-2 Select the linear motion target waypoint

Step3: Turn on the joint overspeed protection switch;

../_images/0362.png

Figure 9.5-3-3 Turn on the joint overspeed protection switch button

Step4: Select the joint overspeed treatment strategy (first two options is not for joint overspeed treatment);

../_images/0372.png

Figure 9.5-3-4 Joint overspeed treatment strategies

Step5: Set the processing option and processing parameters, then click the Add button to add the Lua command;

Under the adaptive speed reduction strategy, the deceleration threshold is the percentage of the linear velocity reduction value relative to the set linear velocity, and when the deceleration value exceeds the set threshold, the robot will report an error and stop.

../_images/0381.png

Figure 9.5-3-5 Joint overspeed treatment strategy selection and setting

Step6: The added Lua command is shown in the figure;

../_images/0391.png

Figure 9.5-3-6 lua command

Joint overspeed protection begins:JointOverSpeedProtectStart(a,b);

a: strategy type number(same as the order of drop-down box)

b: threshold(0~100)

Joint overspeed protection ends:JointOverSpeedProtectEnd();

Note

For the “singularity crossing” motion protection, please refer to the description of the singularity crossing function in automatic mode.

9.5.2.3. Angular velocity adjustable function

This function can be used when encountering a workpiece that requires corner welding during the welding process, or when a specific linear line is planned (a quick transition is required when the attitude change is large and the position change is small, but the linear speed cannot be accelerated).

Step1:Set the tool coordinate system to calibrate the tool size and attitude of the welding gun.

Note

The values on the interface are examples only, and the actual tool status shall prevail.

../_images/246.png

Figure 9.5-3-7 Sets the tool coordinate system

Step2:Click on “Program”, select “Coding”, and select ” LIN” in the “Motion Command” category.

../_images/247.png

Figure 9.5-3-8 Straight line command setting interface

Step3:Set the starting point of each straight line of wrapping angle welding as the transition point, turn on the “The transition point angular velocity is adjustable” button, and set the maximum acceleration percentage (the default maximum angular velocity of 100% is 360°/s).

../_images/248.png

Figure 9.5-3-9 Transition point angular velocity adjustment parameter configuration interface

Step4:Click the “Add” button to generate a LIN command with the adjustment of the transition attitude angular velocity.

../_images/249.png

Figure 9.5-3-10 Add a transition point linear motion command

Step5:The robot completes the attitude transition at the starting point, normally executes the linear command movement to the end point of the section, closes the “The transition point angular velocity is adjustable” button, and adds a termination waypoint.

../_images/250.png

Figure 9.5-3-11 Inserts the end point of the line

Step6:Click the “Apply” button to generate the corresponding LUA command.

../_images/251.png

Figure 9.5-3-12 Generate a straight LUA instruction with transition points

A complete set of corner wrapping welds usually has more than one transition point, and in the case of corner wrapping shown in Figure 7, there are two attitude transition points with small position change and large attitude change during the welding process.

Point 1 is the starting point of the first section of welding, and point 2 is the end point of the first section of welding;

Point 3 is the starting point of the second section of welding, and point 4 is the end point of the second section of welding;

Point 5 is the starting point of the third section of welding, and point 6 is the end point of the third section of welding.

The attitude transition occurs from the end point of the previous section of welding to the starting point of the next section of welding, so it is necessary to add the attitude angular velocity adjustment instruction at the starting point of the next section of welding, so that the maximum linear velocity remains unchanged during the transition of the wrapping angle attitude, and the maximum angular velocity is increased, so that the process of wrapping angle welding process runs.

../_images/252.png

Figure 9.5-3-13 Example of a wrapping welding process

9.5.3. Arc command

Click the “Arc” icon to enter the Arc command editing interface.

The “Arc” command is an arc motion, which includes three points. The first point is the starting point of the arc, the second point is the middle transition point of the arc, and the third point is the end point.

Both transition points and end points can be set with or without offset. Options include offset based on the base coordinate system, tool coordinate system, or workpiece coordinate system. The offset values for x, y, z, rx, ry, rz can be set. For the end point, a smooth transition radius can be set to achieve continuous motion.

Important

For circular motion, you need to add PTP or Lin command to move to the starting point first.

../_images/0401.png

Figure 9.5-4 Arc command interface

The ARC command allows you to select the motion speed mode as either “Percentage” or “Physical Speed”:

  • Percentage: Input a debugging speed percentage. The robot moves at a percentage of its maximum speed. The actual robot movement speed is calculated as: V = Robot Maximum Speed × Global Speed Percentage × Debugging Speed Percentage. Hover the mouse over the small eye icon to the right of the “Debugging Speed” input box to display the actual physical speed (in mm/s) of the robot in both manual and automatic modes under the current debugging speed settings.

../_images/461.png

Figure 9.5-4-1 Display Actual Physical Speed Value When Inputting Percentage

  • Physical Speed: The input speed is the actual operating speed of the robot, in mm/s. The input acceleration is typically set to twice the speed. (The maximum physical speed of the LIN command is limited by the global speed percentage. If the robot’s maximum operating speed is 1000 mm/s and the global speed is 50%, then the maximum physical speed for the LIN command is 1000 × 50% = 500 mm/s).

../_images/462.png

Figure 9.5-4-2 Input Actual Physical Speed

9.5.4. Circle command

Click the “Circle” icon to enter the Circle command editing interface.

The cooperative robot can carry out the circle trajectory movement by adding the circle command. Before adding the circle command, it is necessary to teach three path points on the circle trajectory. Suppose that the three path points on the circle trajectory are “P1”, “P2” and “P3” respectively, where “P1” is the starting point of the circle trajectory, “P2” and “P3” are the middle point 1 and 2 of the circle trajectory.Move the robot to the above three points and add the names of the teaching points as “P1”, “P2” and “P3” respectively.

Important

For full circle trajectory motion, you need to add PTP or Lin command to move to the starting point first.

../_images/0421.png

Figure 9.5-5 Circle trajectory

../_images/0432.png ../_images/0442.png ../_images/0452.png

Figure 9.5-6 Teaching “P1”, “P2” and “P3”

9.5.4.1. Circle command addition

Step1: Create a new user program “testCircle.lua” and click the “Circle” button to open the page of adding circle commands.

../_images/0462.png

Figure 9.5-7 Add the circle command button

Step2: In the full circle instruction adding page, select the starting point motion mode and the starting point as “P1”.

../_images/0501.png

Figure 9.5-8 Starting point motion mode and starting point “P1”

Step3: On the Add Circle Command page, select “Circle Intermediate Point 1” as point “P2”, and “Circle Intermediate Point 2” as point “P3”.

../_images/465.png

Figure 9.33-9 Selecting Arc Intermediate Points and Endpoint

Step4: Select the speed mode and input the speed value.

The Circle command allows you to select the motion speed mode as either “Percentage” or “Physical Speed”:

  • Percentage: Input a debugging speed percentage. The robot moves at a percentage of its maximum speed. The actual robot movement speed is calculated as: V = Robot Maximum Speed × Global Speed Percentage × Debugging Speed Percentage. Hover the mouse over the small eye icon to the right of the “Debugging Speed” input box to display the actual physical speed (in mm/s) of the robot in both manual and automatic modes under the current debugging speed settings.

../_images/466.png

Figure 9.33-10 Display Actual Physical Speed Value When Inputting Percentage

  • Physical Speed: The input speed is the actual operating speed of the robot, in mm/s. The input acceleration is typically set to twice the speed. (The maximum physical speed of the LIN command is limited by the global speed percentage. If the robot’s maximum operating speed is 1000 mm/s and the global speed is 50%, then the maximum physical speed for the LIN command is 1000 × 50% = 500 mm/s).

../_images/467.png

Figure 9.33-11 Input Actual Physical Speed

Step5: Click the “Add” button and then the “Apply” button in sequence. At this point, the circle motion command has been added to “testCircle.lua”.

../_images/468.png

Figure 9.33-12 Addition of Circle Motion Command

Step5: At this point, the circle motion command has been added to “testCircle.lua”.

Switch the robot to automatic mode, start the program on the premise of ensuring safety, and the robot will move according to the circle trajectory shown in Figure 1.

9.5.4.2. Circle trajectory offset

The circular motion of the cooperative robot supports the offset of the positions of the middle point 1 and the middle point 2 of the circular trajectory, and the offset types include the following two types:

The middle points of the two trajectories of the circle have the same offset: the middle point 1 (P2) and the middle point 2 (P3) of the circle are offset by the same offset ∆(dx, dy, dz, drx, dry, drz).

The middle points of the two trajectories of the circle have different offsets: the middle point 1 (P2) and the middle point 2 (P3) of the circle adopt two different offsets ∆1 (dx1, dy1, dz1, drx1, dry1, drz1) and ∆2 (dx2, dy2, dz2, drx2, dry2, drz2) respectively.

The following demonstrates the usage of “same offset” and “different offset” respectively.

  1. Same offset

Open the circle command addition page, select “Same Offset” for Offset Type, and also select the starting point motion mode and starting point as “P1”, and the middle point 1 of the full circle as “P2”.

../_images/0511.png

Figure 9.5-12 Same offset of the circle

Select P3 for the middle point 2 of the circle, and select Base Coordinate Offset for Offset.

Note

You can choose “Tool Coordinate Offset” or “Workpiece Coordinate Offset” according to your actual working conditions.

Enter the offset dx as 10mm, and then click the Add button and the Apply button at the bottom of the page.

../_images/052.png

Figure 9.5-13 Setting Offset

At this time, a full circle starting point is “P1”, and the two intermediate points “P2” and “P3” are offset by 10mm along the X-axis direction of the base coordinate system. The full circle instruction has been added to the “testCircle.lua” program.

../_images/053.png

Figure 9.5-14 Same Offset Program for Circle

Switch the robot to the automatic mode, and start the program under the condition of ensuring safety. The actual motion trajectory of the robot passes through the circles of “P1”, “P2” and “P3”, where “P2” is the point where the original “P2” is offset by 10mm in the X direction, and “P3” is the point where the original “P3” is offset by 10mm in the X direction.

../_images/054.png

Figure 9.5-15 Track with the same offset X10mm

  1. Different offset

Open the circle command adding page, select “Different Offsets” for Offset Type, and also select the starting point motion mode and starting point as “P1”, and the middle point 1 of the full circle as “P2”, and select “Base coordinate offset” for “Offset”.

Note

You can choose “Tool Coordinate Offset” or “Workpiece Coordinate Offset” according to your actual working conditions.

Enter the offset dy as 10mm.

../_images/0551.png

Figure 9.5-16 Different offsets

Select P3 for the middle point 2 of the circle, and select Base Coordinate Offset for Offset

Note

You can choose “Tool Coordinate Offset” or “Workpiece Coordinate Offset” according to your actual working conditions.

Enter the offset dx as 10mm, and then click the Add button and the Apply button at the bottom of the page.

../_images/0561.png

Figure 9.5-17 Offset of middle point 2 is set with different offsets

At this time, an command that the middle point “P2” of the circle is shifted by 10mm along the Y direction of the base coordinate system and “P3” is shifted by 10mm along the X axis direction of the base coordinate system has been added to the “testCircle.lua” program; Of course, a linear motion command needs to be added before the circle motion command to make the robot move to the starting point of the circle.

../_images/0571.png

Figure 9.5-18 Program for Two Different Offset Points of Circle

Switch the robot to the automatic mode, and start the program under the condition of ensuring safety. The actual motion trajectory of the robot passes through the circles of “P1”, “P2” and “P3”, where “P2” is the point where the original “P2” is offset by 10mm in the Y direction, and “P3” is the point where the original P3 is offset by 10mm in the X direction.

../_images/0581.png

Figure 9.5-19 Two trajectory points of the circle are offset from the trajectory respectively

9.5.5. Spiral command

Click the “Spiral” icon to enter the Spiral command editing interface.

The “Spiral” command is a spiral motion, which includes three points, which form a circle. On the third point setting page, there are several parameters including the number of spiral turns, attitude correction angle, radius increment and rotation axis direction increment. Setting, the number of helix circles is the number of motion circles of the helix, the attitude correction angle is the attitude at the end of the helix and the attitude of the first point of the helix, the radius increment is the increment of the radius of each circle, and the direction of the rotation axis is increased. The amount is the increment in the direction of the screw axis.

Whether to offset, you can choose “Offset Based on Base Coordinates”, “Offset Based on Tool Coordinates”, or “Offset Based on Workpiece Coordinates”. This offset is applied to the entire spiral trajectory.

../_images/0591.png

Figure 9.5-20 Spiral command interface

9.5.6. N-Spiral command

Click the “N-Spiral” icon to enter the N-Spiral command editing interface.

The “N-Spiral” command is an optimized version of the spiral motion. This command only needs one point plus the configuration of various parameters to realize the spiral motion. The robot takes the current position as the starting point, and the user sets the debugging speed, whether to offset, the number of spiral turns, the spiral inclination, the initial radius, the radius increment, the rotation axis direction increment and the rotation direction. The number of spiral turns is the helix. The number of motion circles, the helix inclination is the angle between the Z axis of the tool and the horizontal direction, the attitude correction angle is the attitude at the end of the helix and the attitude of the first point of the helix, the initial radius is the radius of the first circle, and the radius increment That is, the increment of the radius of each circle, the increment in the direction of the rotation axis is the increment in the direction of the screw axis, and the direction of rotation is clockwise and counterclockwise.

../_images/0601.png

Figure 9.5-21 N-Spiral command interface

9.5.6.1. Uniform Speed Per Helix Circle Setting Function

9.5.6.1.1. Overview

When using the helical motion command, the operating speed of the helical motion can be set, ensuring the speed of each circle maintains the set operating speed.

9.5.6.1.2. Operation Process

Step1: Select the teaching point that executes the helical motion. This manual uses “P0” as the name of the teaching point.

Step2: Click the “Teach Program” -> “Program Programming” button, select the “New Helix” command. In the “Speed Mode”, select “Physical Speed”, and set the speed value and acceleration value. This speed value is the actual operating speed of the helix. Set parameters such as “Number of Helix Circles”, “Helix Inclination Angle”, “Initial Radius”, “Radius Increment”, “Rotation Axis Direction Increment”, and “Rotation Direction” according to actual needs, as shown in Figure 2-1.

../_images/492.png

Figure 9.5-21-1 New Helix Parameter Settings

Step3: Add the motion command, generate the Lua program and run it to achieve the helical motion function at the set speed, as shown in Figure 2-2.

../_images/493.png

Figure 9.5-21-2 Typical Program for Running Helix at Set Speed

9.5.7. H-Spiral command

Click the “H-Spiral” icon to enter the H-Spiral command editing interface.

The “H-Spiral” command is a horizontal space spiral motion. This command is set after the single-segment motion (straight line) command.

  • Spiral radius: 0~100mm

  • Helix angular speed: 0~2rev/s

  • Direction of rotation: spiral clockwise/counterclockwise

  • Helix inclination angle: 0~40°

../_images/0611.png

Figure 9.5-22 H-Spiral command interface

9.5.8. Spline command

Click the “Spline” icon to enter the Spline command editing interface.

The command is divided into three parts: the start of the spline group, the spline segment and the end of the spline group. The start of the spline group is the start mark of the spline movement. The spline segment includes SPL, SLIN and SCIRC segments. Click the corresponding icon to enter the command Add interface, the end of spline group is the end sign of spline movement.

../_images/0621.png

Figure 9.5-23 Spline command interface

9.5.9. N-Spline command

Click the “N-Spline” icon to enter the N-Spline command editing interface.

This instruction is an optimization instruction for the Spline instruction algorithm, and will replace the existing Spline instruction in the future.

This instruction is divided into three parts: the start of the multi-point trajectory, the segment of the multi-point trajectory and the end of the multi-point trajectory. The start mark, the multi-point track segment is to set each track point.

Click the icon to enter the point adding interface, the end of the multi-point track is the end mark of the multi-point track movement, here you can set the control mode and debugging speed.

  • Control mode: arc transition point/given path point

  • Global average connection time: integer, greater than 10, default value is 2000

../_images/0631.png

Figure 9.5-24 N-Spline command interface

9.5.10. Weave command

Click the “Weave” icon to enter the Weave command editing interface. The “Weave” command consists of two parts.

  • Select the weaving number with configured parameters, click “Start Weaving” and “Stop Weaving” and apply to add related commands to the program.

../_images/0642.png

Figure 9.5-25 Weave command interface

  • Click “Configuration and Test” to select the weaving type according to the usage scenario and configure the weaving parameters. After the configuration is completed, the weaving trajectory can be tested by pressing the start weaving test and stop weaving test buttons. The current swing types are:

    • Triangular wave swing (LIN/ARC)

    • Vertical L-shaped triangular wave swing (LIN/ARC)

    • Circular Oscillation - Clockwise (LIN)

    • Circular Oscillation - Counterclockwise (LIN)

    • Sine wave swing (LIN/ARC)

    • Vertical L-shaped sine wave swing (LIN/ARC)

    • Vertical welding triangle swing

../_images/0652.png

Figure 9.5-26 Weave configuration and testing command interface

9.5.10.1. Slope serration weave function

This function allows the end of the robot tool to generate slope serration weave trajectory in Cartesian space. The weave is superimposed on the linear trajectory, and the azimuth parameter (unit deg) defines the azimuth angle of the swing welding on the specified welding plane;

When the value is positive, the left endpoint is skewed in the forward direction, and when it is negative, the right endpoint is skewed in the forward direction; If it is 90deg or -90deg, it can weave in the forward direction.

../_images/0662.png

Figure 9.5-26-1 Swing azimuth effect

Step1:Edit to set up basic linear motion.

../_images/0672.png

Figure 9.5-26-2 Example of a basic linear motion LUA program

Step2:Add weave command in motion command block.

../_images/0682.png

Figure 9.5-26-3 Add weave command

Step3:Click the “Configure” button, select “Triangular wave swing” or “Sine wave swing” from the drop-down box, imput desired azimuth angle in “Swing direction azimuth” box and click “Apply”.

../_images/0691.png

Figure 9.5-26-4 Weave parameter configuration

Step4:Click the “Start Swing” button to add the swing command above the linear motion; Click the “Stop Swing” button to add the swing command below the linear motion.

../_images/0701.png

Figure 9.5-26-5 Add the lua program after the swing command

Step5:Click “Start Running”buttom, and the end trajectory of the robot is shown in the figure.

../_images/071.png ../_images/072.png

Figure 9.5-26-6 Zigzag weave (left) slope serration weave (right)

9.5.11. TPD command

Click the “TPD” button to enter the TPD command editing interface.

In this command, the user first needs to have a recorded track.

About track recording: Before preparing to record the track, first save the starting point of the track. When the robot is in the dragging mode, input the file name, select the period (assuming the value is x, that is, record a point every x milliseconds, it is recommended to record a point every 4 milliseconds), the point starts recording, and the user can drag the robot to specify Movement, after the recording is completed, click to stop recording, and the previous movement track of the robot can be saved. When a movement cannot be fully recorded, a A reminder that the number of recording points exceeds the limit is displayed, and the user needs to record the exercise in several times.

When programming, first use the PTP instruction to reach the starting point of the corresponding trajectory, then select the trajectory in the TPD trajectory reproduction instruction, select whether it is smooth, set the debugging speed, and click “Add” and “Apply” in sequence to insert the program. The trajectory loading command is mainly used to pre-read the trajectory file and extract it into a trajectory command, which is better applied to the conveyor belt tracking scene.

Note

For the detailed operation of TPD, please refer to the teaching programming (TPD) function operation instruction module.

../_images/073.png

Figure 9.5-27 TPD command interface

9.5.11.1. Robot Trajectory Teaching and Replay TPD Function

9.5.11.1.1. Overview

The robot trajectory teaching and replay TPD function allows the robot to accurately remember and repeat complex taught trajectories, thereby achieving high-quality and high-efficiency automated production in industrial manufacturing, and replacing humans in completing high-risk tasks in hazardous environments.

9.5.11.1.2. Operation Procedure

Step1: TPD recording parameter setting. Click “TPD” in the status bar at the bottom of the interface to enter the TPD function item to configure trajectory recording parameters, set the trajectory file name, pose type, and sampling period, and configure DI and DO. During the TPD trajectory recording process, triggering DI will output the corresponding DO when replaying the TPD.

../_images/549.png

Figure 9.5-27-1 TPD Parameter Setting

Step2: Switch to drag mode. In manual mode, there are two ways to switch to drag teaching mode: one is to long press the end button, and the other is to use the interface drag mode switch button. In the TPD recording function, it is recommended to switch the robot to drag teaching mode from the interface.

../_images/550.png

Figure 9.5-27-2 Robot Drag Mode Setting

Step3: Start recording. Click the “Start Recording” button to start trajectory recording, and drag the robot for motion teaching. In addition, there is a “TPD Recording Start/Stop” function configuration item in the end DI configuration. By configuring this function, users can trigger the “Start Recording” trajectory function through external signals. It should be noted that to start recording the trajectory through an external signal, the TPD trajectory information must first be configured on the page.

Step4: Stop recording. After completing the motion teaching, click the “Stop Recording” button to stop trajectory recording, and then exit the drag teaching mode by using the drag teaching switch button. Similar to Step 3, after configuring the “TPD Recording Start/Stop” function, the stop recording can be triggered through an external signal.

Step5: TPD trajectory editing. Click “TPD” in the status bar at the bottom of the interface to enter the TPD trajectory editing function. First, select the trajectory to be edited, click the “Get” button, and Start-index and End-index will display the start sequence number and end sequence number of the trajectory. Adjust them by dragging the slider or manually entering values; then click the “Replay” button, and the robot will simulate the motion on the interface (the actual robot does not move); finally, click the “Finish” button to complete the editing of the TPD trajectory.

../_images/551.png

Figure 9.5-27-3 TPD Trajectory Editing

Step6: Write the trajectory teaching and replay TPD program. Click “Teaching Program” - “Trajectory Replay” - “Trajectory Load”, select the trajectory to be replayed, and then click the “Add” button. Click “Trajectory Replay”, select the same trajectory, set the corresponding parameters according to the interface prompts, and then click the “Add” button.

../_images/552.png

Figure 9.5-27-4 TPD Trajectory Load Setting

../_images/553.png

Figure 9.5-27-5 TPD Trajectory Replay Setting

Step7: Generate the Lua program and run it. According to the typical Lua program generated in Step 6, run the program to perform trajectory teaching and replay.

../_images/554.png

Figure 9.5-27-6 Typical Program for TPD Trajectory Replay

9.5.12. Offset command

Click the “Offset” icon to enter the Offset command editing interface.

This command is an overall offset command. Input each offset, add the opening command and closing command to the program, and the motion command between the start and close will be offset based on the base coordinates (or workpiece coordinates).

../_images/074.png

Figure 9.5-28 Offset command interface

9.5.13. Servo Command

Click the “Servo” icon to enter the servoMotion command editing interface. Servo motion includes servo motion in Cartesian space and servo motion in joint space.

../_images/075.png

Figure 9.5-29-1 Servo Motion Command Interface

9.5.13.1. Servo Motion in Cartesian Space

ServoCart servo control (Cartesian space motion) command. This command can control robot motion through absolute pose control or offset control based on the current pose.

../_images/0761.png

Figure 9.5-29-2 ServoCart Command Interface

Example of absolute pose control program:

../_images/0771.png

Figure 9.5-29-3 ServoCart Absolute Motion

In this example, x, y, z, rx, ry, rz (Cartesian position) are the acquired current robot position. Additionally, users can control robot motion by reading trajectory data files, sending trajectory data via socket communication, etc.

Example of control program based on offset from current pose (base coordinate offset):

../_images/519.png

Figure 9.5-29-4 ServoCart Relative Motion

9.5.13.2. Servo Motion in Joint Space

ServoJ servo control (joint space motion) command. This command can control robot motion through absolute robot joint positions.

Click “Teaching Program”, “Program Programming”, “Servo Motion” in sequence. On the servoMotion command page, select “Joint Space Motion”.

../_images/520.png

Figure 9.5-29-5 ServoJ Command Editing

The parameters in the command are explained as follows:

  • Joint Position: The target joint position for ServoJ motion. The motion from the current position to the target position needs to be completed within the set command cycle. If the deviation between the target position and the current position command is too large, the robot may report errors such as joint overspeed.

  • Extended Axis Position: The target extended axis position for ServoJ motion.

  • Acceleration: Acceleration percentage for ServoJ motion (currently not available).

  • Speed: Speed percentage for ServoJ motion (currently not available; the actual robot operating speed currently depends on the position difference between two ServoJ commands and the command cycle).

  • Command Cycle: Execution time interval between two ServoJ commands.

Input the corresponding target position, speed, acceleration, and command cycle. Click the “Add” and “Apply” buttons to add a ServoJ command to the LUA program.

../_images/521.png

Figure 9.5-29-6 ServoJ Command Added to Lua Program

In practice, it is often necessary to continuously send multiple ServoJ commands according to the set command cycle. The target joint positions of these ServoJ commands form a continuous robot motion curve, enabling flexible robot motion control. The sending cycle of the commands must match the set command cycle.

ServoJ motion control can be implemented in the LUA program through loops or by adding multiple commands consecutively.

../_images/522.png

Figure 9.5-29-7 Example of Continuous ServoJ Motion

../_images/523.png

Figure 9.5-29-8 Example of Continuous ServoJ Motion 1

9.5.13.3. Extended Axis Debugging Instructions

9.5.13.3.1. Overview

The GetInverseKinExaxis instruction interface for the inverse kinematics of extended axis target positions and the ServoCart instruction interface with extended axis positions support various scenarios where extended axes and robots are used simultaneously.

9.5.13.3.2. Operation Process

Step1: The parameters and return value of the inverse kinematics GetInverseKinExaxis instruction interface are shown in the tables below.

Table 9.5-1 GetInverseKinExaxis Parameters

No.

Data Type

Variable Name

Detailed Description

1

uint8_t

posMode

0: Absolute pose, 1: Relative pose - Base coordinate system, 2: Relative pose - Tool coordinate system

2

float

desePos[6]

Robot Cartesian position

3

float

exaxis[4]

Extended axis position

4

int

toolNum

Tool number [0-14]

5

int

workPieceNum

Workpiece number [0-14]

Table 9.5-2 GetInverseKinExaxis Return Value

No.

Data Type

Variable Name

Detailed Description

1

float

jointPos[6]

Joint position

Step2: The calling format of the inverse kinematics GetInverseKinExaxis instruction in a Lua program is shown in the figure below. By simply inputting the parameters listed in the table, the corresponding joint values can be obtained. For calls in the SDK, refer to the corresponding SDK documentation.

../_images/543.png

Figure 9.5-29-9 GetInverseKinExaxis Call in Lua

Step3: The ServoCart instruction interface with extended axis positions is shown in the table below, with no return value.

Table 9.5-3 ServoCart Parameters

No.

Data Type

Variable Name

Detailed Description

1

uint8_t

posMode

0: Absolute pose, 1: Relative pose - Base coordinate system, 2: Relative pose - Tool coordinate system

2

float

desePos[6]

Robot Cartesian position

3

float

gain[6]

Pose proportionality coefficient, used in relative pose cases

4

float

exaxis[4]

Extended axis position

5

float

acc

Acceleration proportion, 0~100, default 0

6

float

vel

Velocity proportion, 0~100, default 0

7

float

interval

Instruction period [s]

8

float

filterTime

Filter time [s], temporarily unavailable

9

float

posGain

Proportional amplifier for target position, temporarily unavailable

Step4: The calling format of the ServoCart instruction with extended axis positions in a Lua program is shown in the figure below. By simply inputting the parameters listed in the table, the robot can execute ServoCart motion with extended axis positions. For calls in the SDK, refer to the corresponding SDK documentation.

../_images/544.png

Figure 9.5-29-10 ServoCart Call in Lua

9.5.14. Trajctory command

Click the “Trajctory” icon to enter the Trajctory command editing interface.

../_images/0781.png

Figure 9.5-30 Trajctory command interface

9.5.15. TrajctoryJ command

Click the “TrajctoryJ” icon to enter the TrajctoryJ command editing interface.

  1. Trajectory file import function: select a local computer file to import to the robot control system.

  2. Track preloading: select the imported track file and load it by command.

  3. Trajectory movement: Send the robot movement through the combination command of the preloaded trajectory file and the selected debugging speed.

  4. Print the track point number: print the track point number during the robot running track, so as to check the progress of the current movement.

../_images/0791.png

Figure 9.5-31 TrajctoryJ command interface

9.5.16. DMP command

Click the “DMP” icon to enter the DMP command editing interface.

DMP is a trajectory imitation learning method that requires prior planning of reference trajectories. In the command editing interface. , select the teaching point as the new starting point, click “Add” and “Apply” to save the command. The DMP specific path is a new trajectory that mimics the reference trajectory with a new starting point.

../_images/0801.png

Figure 9.5-32 DMP command interface

9.5.17. WPTrsf command

Click the “WPTrsf” icon to enter the WPTrsf command editing interface.

Select the workpiece coordinate system to be automatically converted, and click “Add” and “Apply” to save the instruction. This instruction realizes automatic conversion of points in the workpiece coordinate system when executing internal PTP and LIN instructions. Use the example area to show and prompt the correct combination of instructions. After adding specific instructions, you can adjust the combination according to the actual scene.

../_images/0811.png

Figure 9.5-33 WPTrsf command interface

9.5.18. Tool conversion command

Click the “Tool conversion” icon to enter the ToolTrsf command editing interface.

After adding PTP and Lin instructions, select the tool coordinate system to be automatically converted, click “Add” and “Apply” to save the instruction, and the Cartesian coordinates of the points in the instruction will be automatically converted according to the currently set workpiece coordinate system.

Note

The usage example area shows and prompts the correct combination of instructions. After adding specific instructions, you can adjust the combination according to the actual scenario.

../_images/276.png

Figure 9.5-34 ToolTrsf command interface

9.6. Control command interface

../_images/0821.png

Figure 9.6 Control command interface

9.6.1. IO command

Click the “IO” icon to enter the IO command editing interface.

The “IO” instruction is divided into three parts: setting IO (SetDO/SPLCSetDO), getting DI (GetDI/SPLCGetDI), and getting DO (GetDO).

“SetDO/SPLCSetDO” This command can set the specified output DO state, including 16 digital outputs of the control box and 2 digital outputs of the tool. The state option “False” is closed, “True” is open, and whether to block the option selects “blocked”. “Indicates that the DO state is set after the movement stops, and selecting the “non-blocking” option means that the DO state is set during the last movement. Selecting “Break” for the smooth trajectory option means setting the DO state after the smooth transition radius ends, and selecting “Serious” means setting the DO state during the smooth transition radius movement. When this instruction is added in the auxiliary thread, whether the application thread needs to select yes, and other places use this instruction to select no. Click “Add”, “Apply”.

../_images/0831.png

Figure 9.6-1 SetDO command interface

In the “GetDI/SPLCGetDI” command, select the value of the port number you want to get, whether to block or not, select “block” to get the DI status after the movement stops, and select the “non-blocking” option to get the DI state during the last movement. When this instruction is added in the auxiliary thread, whether the application thread needs to select yes, and other places use this instruction to select no. After selection, click the “Add” and “Apply” buttons.

../_images/0841.png

Figure 9.6-2 GetDI command interface

In the “GetDO” instruction, select the desired port number value. The blocking option selects “Blocking” to get the DO status after the motion stops, and selects “Non-blocking” to get the DO status during the previous motion. After selection, click the “Add” and “Apply” buttons.

../_images/571.png

Figure 9.6-2-2 GetDO Instruction Interface

9.6.2. AI command

Click the “AI” icon to enter the AI command editing interface.

This instruction is divided into three functional parts: setting analog output (SetAO/SPLCSetAO), getting analog input (GetAI/SPLCGetAI), and getting analog output (GetAO).

“SetAO/SPLCSetAO” select the analog output that needs to be set, input the value that needs to be set, the range is 0-10, whether to block or not select “block” means to set the AO state after the movement stops, select “non-block” means to set the AO state after the last movement Set the AO state in the process. When this instruction is added in the auxiliary thread, whether the application thread needs to select yes, and other places use this instruction to select no. Click “Add”, “Apply”.

../_images/0851.png

Figure 9.6-3 SetAO command interface

“GetAI/SPLCGetAI” selects the analog input that needs to be obtained, whether to block or not selects “blocked” to obtain the AI state after the movement stops, and selects the “non-blocked” option to obtain the AI state during the last movement. When this instruction is added in the auxiliary thread, whether the application thread needs to select yes, and other places use this instruction to select no. Click “Add”, “Apply”.

../_images/0861.png

Figure 9.6-4 GetAI command interface

“GetAO” selects the analog input to be obtained. The blocking option selects “Blocking” to get the AI status after the motion stops, and selects “Non-blocking” to get the AI status during the previous motion. Click “Add” and “Apply”.

../_images/572.png

Figure 9.6-4-2 GetAO Instruction Interface

9.6.3. Vir-IO command

Click the “Vir-IO” icon to enter the Vir-IO command editing interface.

This command is a virtual IO control command, which can realize the setting of the simulated external DI and AI status, and obtain the simulated DI and AI status.

../_images/0871.png

Figure 9.6-5 Vir-IO command interface

9.6.4. Aux-IO command

Click the “Aux-IO” icon to enter the Aux-IO command editing interface.

Aux-IO is the instruction function for the robot to communicate with the PLC to control the external expansion IO. It is necessary for the robot to establish UDP communication with the PLC. On the basis of the original 16-channel input and output, 128-channel input and output can be expanded. The usage of this command is the same as that mentioned above. IO usage is similar. There are certain technical difficulties in using this function, please contact us for consultation beforehand.

../_images/0881.png

Figure 9.6-6 Aux-IO command interface

9.6.5. MoveDO command

Click the “MoveDO” icon to enter the MoveDO command editing interface.

This instruction is divided into continuous output mode and single output mode.

  • Continuous output mode: During linear motion, the DO signal function is continuously output according to the set interval.

../_images/0891.png

Figure 9.6-7 MoveDO command continuous output interface

  • Single output mode: There are two options: constant speed segment output and free configuration. The setting time is output after the movement starts, and the reset time is output before the movement ends, ranging from [0, 1000].

../_images/0901.png

Figure 9.6-8 MoveDO instruction single output interface

9.6.6. MoveAO command

Click the “MoveAO” icon to enter the MoveAO command editing interface.

  1. Summary

When used in conjunction with motion commands, this instruction can output AO signals proportionally based on real-time TCP speed during the motion process.

  1. Description of Motion AO Command

The motion AO command is located in the teaching simulation program teaching command editing area, and the icon is Control Command-Motion AO.

../_images/0911.png

Figure 9.6-9 Motion AO Instruction

../_images/0921.png

Figure 9.6-10 Details of Motion AO Instructions

  • AO number: dropdown list selection, Ctrl-AO0 corresponds to control box AO0, Ctrl-AO1 corresponds to control box AO1, and End AO0 corresponds to end AO0.

  • Maximum TCP speed: The maximum TCP speed value of the robot; Function: Proportional to real-time TCP speed.

  • Maximum TCP speed AO percentage: The AO percentage corresponding to the maximum TCP speed value of the robot; Function: Set the upper limit value of AO output.

  • Dead zone compensation value AO percentage: When there is a dead zone in the proportional valve, this parameter can be set to ensure AO output; Function: Set the lower limit value of AO output.

Important

Calculation formula:Output AO percentage=Real time TCP speed/Set maximum TCP speed * Set maximum TCP speed AO percentage.

The accompanying motion commands for this command are as follows:PTP/LIN/ARC/CIRCLE/SPLINE/NSPLINE/SERVOJ.

9.6.7. ToolList command

Click the “ToolList” icon to enter the ToolList command editing interface.

Select the tool coordinate system name and click “Apply” to add this command to the program. When the program runs this statement, the tool coordinate system of the robot will be set.

../_images/0931.png

Figure 9.6-11 ToolList command interface

9.6.8. Mode command

Click the “Mode” icon to enter the Mode command editing interface.

This command can switch the robot to manual mode, and is usually added at the end of a program so that the user can automatically switch the robot to manual mode and drag the robot after the program runs.

../_images/0941.png

Figure 9.6-12 Mode command interface

9.6.9. Collision command

Click the “Collision” icon to enter the Collision command editing interface.

This command is used to set the collision level. Through this command, the collision level of each axis can be adjusted in real time during program operation, and the application scenario can be deployed more flexibly.

../_images/0951.png

Figure 9.6-13 Collision command interface

9.6.10. Acc command

Click the “Acc” icon to enter the Acc command editing interface.

The Acc command is to realize the function that the acceleration of the robot can be set separately. By adjusting the acceleration scaling factor of the motion command, the acceleration and deceleration time can be increased or decreased, and the takt time of the robot action can be adjusted.

../_images/0961.png

Figure 9.6-14 Acc command interface

9.7. Peripheral Command Interface

../_images/0971.png

Figure 9.7 Peripheral Command Interface

9.7.1. Gripper command

Click the “Gripper” icon to enter the Gripper command editing interface.

In this command, it is divided into the gripper motion control command and the gripper activation/reset command. In the gripper control command, the number of the gripper that has been configured and activated is displayed. The user can edit through the edit box, or slide the slider to The required value is used to complete the setting of jaw opening and closing, opening and closing speed and opening and closing torque. Blocking means that the gripper moves in parallel with the previous movement command. Click the “Add” and “Apply” buttons to save the set value to the teaching file. The gripper reset/activation command displays the number of the grippers that have been configured, and the reset/activation command can be added to the program.

../_images/098.png

Figure 9.7-1 Gripper command interface

9.7.2. Spray command

Click the “Spray” icon to enter the Spray command editing interface.

This command is a spraying-related command, which controls the spray gun to “start spraying”, “stop spraying”, “start cleaning the gun” and “stop the light gun”. When editing the program command, it is necessary to confirm that the peripherals of the spray gun have been configured. For details, see the chapter on peripherals of the robot.

../_images/099.png

Figure 9.7-2 Spray command interface

9.7.3. EAxis command

Click the “EAxis” icon to enter the EAxis command editing interface., Select the combination mode:

  • Controller + servo drive (485)

  • Controller + PLC (UDP)

Select controller + PLC(UDP),this command is used in combination with the PTP command for scenarios using external axes, and can decompose the movement of a point in space in the X-axis direction to the movement of external axes. Select the external axis number, select synchronous motion mode, select the point to be reached, and click “Add” and “Apply” to save the command.

../_images/100.png

Figure 9.7-3 EAxis command interface

Select controller + servo drive(485),This command can configure the extended axis parameters. Set different parameters according to different control modes. The zero point of the configured expansion axis can be set.

../_images/101.png

Figure 3.7-4 Servo command interface

9.7.4. Convey command

Click the “Convey” icon to enter the Convey command editing interface.

This command includes four commands: position real-time detection, IO real-time detection, tracking on and tracking off. See Robot Peripherals chapter for details.

../_images/102.png

Figure 9.7-5 Conveyor command interface

9.7.5. Polish command

Click the “Polishing” icon to enter the Polish command editing interface.

This command can set the rotation speed, contact force, extension distance and control mode of the grinding equipment.

../_images/103.png

Figure 9.7-6 Polish command interface

9.8. Welding command interface

../_images/104.png

Figure 9.8 Welding command interface

9.8.1. Weld command

Click the “Weld” icon to enter the Weld command editing interface.

This command is mainly used for welding machine peripherals. Before adding this command, please confirm whether the welding machine configuration is completed in the user peripherals. For details, see the chapter on robot peripherals.

  • welding voltage range: 0~700V

  • welding current range: 0~1000A

Important

When configuring the output AO, welding current, and welding voltage, you need to select the I/O type. If you select controller I/O, you need to select the corresponding output AO.

../_images/105.png

Figure 9.8-1 Weld command interface

9.8.2. Segment command

Click the “Segment” icon to enter the Segment command editing interface.

The collaborative robot can perform segment welding operations by adding segment welding instructions. Before adding segment welding instructions, you need to select the segment welding mode and teach the starting point and end point. The segment welding mode is divided into unchanged posture and changing posture. The robot considers whether to change the posture during the welding trajectory according to the selected segment welding mode.

Teach the starting point “segment01” and the end point “segment02”, and confirm the starting point and end point of the welding trajectory, as shown in the figure below.

../_images/106.png

Figure 9.8-2-1 Starting point “segment01”

../_images/107.png

Figure 9.8-2-2 Starting point “segment02”

9.8.2.1. Segment welding command added

Step1: Create a new user program “testSegment1.lua”, click the “Segment Welding” button, and open the segment welding instruction adding page.

../_images/108.png

Figure 9.8-2-3 Add segment welding command button

Step2: On the segment welding instruction adding page, select “segment01” as the “start point” and “segment02” as the “end point”.

../_images/109.png

Figure 9.8-2-4 Starting point and end point of segment welding

Step3: Configure the debugging speed, execution length, non-execution length, functional mode, swing selection and rounding rules, and click the “Add” button and the “Apply” button in sequence.

Step4: At this time, “testSegment1.lua” has added segment welding motion instructions, as shown in Figure5.

../_images/110.png

Figure 9.8-2-5 Addition of segment welding motion instructions

9.8.2.2. Changes in segment welding motion trajectory and attitude

The segment welding mode of the collaborative robot can be selected for the segment welding movement. The mode types include the following two types;

No change in posture:The robot always maintains the posture of the starting point of the welding trajectory during the welding trajectory.

Changing posture:During the welding trajectory process, the robot calculates the Cartesian pose and joint position of each segment of the trajectory, and changes its posture during the segment welding operation.

The following demonstrates the usage of “no change posture” and “change posture” respectively.

  1. Do not change posture

Open the segment welding instruction adding page, select “No change in attitude” for “segment welding mode”, also select “start point” as “segment01”, “end point” as “segment02”, set the execution length to 100, non-execution Set the length to 50, select other relevant configurations and save the program.

../_images/111.png

Figure 9.8-2-6 Segment welding mode without changing attitude

  1. Change posture

Open the segment welding instruction adding page, select “Change Attitude” for “Segment Welding Mode”, also select “Start Point” as “segment01”, “End Point” as “segment02”, set the execution length to 100, and the non-execution length. Set it to 50, select other relevant configurations and save the program.

../_images/112.png

Figure 9.8-2-7 Changing attitude segment welding mode

  1. Section welding operation type

Running program, robot segment welding operation conditions are divided into the following types:

  1. If the function mode selects the first segment to execute the function, and the swing selects the execution segment to swing, the rounding rule will not round. Then the robot performs swing motion at 100mm and linear motion at 50mm alternately, and stops when it reaches the end point;

../_images/113.png

Figure 9.8-2-8 The first section executes the swing function without rounding

  1. If the function mode selects the first segment to not execute the function, the swing selection does not execute the segment swing, and the rounding rules do not round. Then the robot performs swing motion for 50mm and linear motion for 100mm alternately, and stops when it reaches the end point;

../_images/114.png

Figure 9.8-2-9 The first section does not execute the swing function and does not round

  1. If the function mode selects the first segment to perform the function, the swing selects the execution segment to swing, and the rounding rules are rounded. Then the robot performs swing motion at 100mm and linear motion at 50mm alternately. After the last period of the overall cycle, if the remaining distance is less than 150mm, it will stop swinging;

../_images/115.png

Figure 9.8-2-10 The first section performs circular rounding of the swing function

  1. If the function mode selects the first segment to perform the function, and the swing selects not to execute the segment swing, the rounding rules are rounded. Then the robot performs swing motion at 50mm and linear motion at 100mm alternately. After the last period of the overall cycle, if the remaining distance is less than 150mm, it will stop swinging;

../_images/116.png

Figure 9.8-2-11 The first section does not perform circular rounding of the swing function

  1. If the function mode selects the first segment to execute the function, the swing selects the execution segment to swing, and the rounding rule is single segment rounding. Then the robot performs swing motion at 100mm and linear motion at 50mm alternately. After the last cycle, if the next segment is 100mm, swing planning is performed and the remaining distance is less than 100mm, the swing will stop; if the next segment is 50mm, linear motion planning is performed and the remaining distance is If it is less than 50mm, the movement will stop;

../_images/117.png

Figure 9.8-2-12 The first section performs single-section rounding of the swing function

  1. If the function mode selects the first segment to perform the function, the swing selects not to execute segment swing, and the rounding rule is single segment rounding. Then the robot performs swing motion at 50mm and linear motion at 100mm alternately. After the last cycle, if the next segment is 50mm, swing planning is performed and the remaining distance is less than 50mm, then the swing is stopped; if the next segment is 100mm, linear motion planning is performed and the remaining distance is Less than 100mm, the movement stops.

../_images/118.png

Figure 9.8-2-13 The first section does not perform single-section rounding of the swing function

  1. Posture contrast

When configuring different segment welding modes, the posture of the robot during welding trajectory operation will also be different. The posture comparison during operation is as follows:

../_images/119.png

Figure 9.8-2-14 Initial posture of welding trajectory

../_images/120.png

Figure 9.8-2-15 The posture does not change during operation

../_images/121.png

Figure 9.8-2-16 Change of attitude during operation

9.8.2.3. Actual scene of segment welding

In the actual test environment, the robot needs to be equipped with a welding gun and other configurations, and perform welding operations on the welding plate according to the created segment welding instructions. The actual scene diagram is as follows:

../_images/122.png

Figure 9.8-2-17 Actual scene of segment welding

9.8.3. Laser command

Click the “Laser” icon to enter the Laser command editing interface.

This command includes three parts: laser command, tracking command and positioning command. Before adding this command, please confirm whether the laser tracking sensor in the user peripheral has been configured successfully. See Robot Peripherals chapter for details.

In the sensor loading module, after displaying the corresponding “sensor command” interface according to the function selection, configure the sensor command:

Ruiniu/CXZK: Enter the weld type, range: 0~49 integer

../_images/123.png

Figure 9.8-3-1 Laser command interface

Quanshi: Enter the task number, range: 0~255 integer

../_images/124.png

Figure 9.8-3-2 Laser command interface

9.8.3.1. Laser Sensor Fixed-Point Tracking Function

9.8.3.1.1. Overview

The current laser fixed-point tracking is implemented based on the extended axis method. Newly added custom tracking time tracking or IO trigger tracking methods are now available to adapt to various application scenarios. When selecting the custom tracking time tracking method, the tracking time needs to be set. Laser tracking starts when the program begins running and exits tracking when the set time is reached. When selecting the IO trigger tracking method, the Lua program or SDK program runs, tracking starts when the IO is triggered, and laser tracking stops when the IO signal is removed.

9.8.3.1.2. Custom Tracking Time Tracking Operation Process

Step1: Click “Initial Setup” - “Peripherals” - “Line Laser Sensor” - “Adapted Devices” to enter the configuration page. The configuration page includes “Sensor Configuration”, “Communication Configuration and Loading”, “Reference Calculation”, etc. Click “Sensor Configuration” to set sensor input filter parameters, set the maximum difference according to actual conditions, select data processing as “Raw Data (No Transformation)”, set the sensitivity coefficient X direction to 0, set Y direction and Z direction according to actual conditions, recommended to set to 1; click “Communication Configuration and Loading” to input corresponding communication parameters to connect the laser sensor. For detailed configuration, refer to the corresponding section of the user manual.

../_images/524.png

Figure 9.8-3-3 Line Laser Sensor Configuration

Step2: Calibrate the tool coordinate system and the laser sensor coordinate system. Calibrate the tool coordinate system using the “Six-Point Method”, and calibrate the laser sensor coordinate system using the “Five-Point Method”. Tool coordinate system and laser sensor coordinate system calibration are not the focus of this function introduction. For detailed calibration methods, refer to the corresponding section of the user manual.

Step3: Adjust the workpiece and laser beam position as shown in the figure below. The black rectangle is the workpiece, the red line segment is the laser beam. The laser beam should be perpendicular to the workpiece edge to be tracked, and the workpiece movement direction should be parallel to the laser beam. The workpiece moves at a constant speed, recommended speed is 15mm/s. Too fast will degrade tracking performance.

../_images/525.png

Figure 9.8-3-4 Workpiece and Laser Beam Relative Position Schematic

Step4: Click “Teach Program” - “Laser Tracking” - “Data Recording”, set function selection to “Record and Reproduce Simultaneously”, set fixed-point tracking motion type to “Robot Motion”, set fixed-point tracking trigger mode to “Time”, set tracking duration according to actual requirements. In this manual, 21s is used as an example. The settings of other parameters are the same as laser tracking using extended axis. Click the “Add” button below.

../_images/526.png

Figure 9.8-3-5 Custom Duration Tracking Parameter Settings

Step5: Click “Teach Program” - “Laser Tracking” - “Data Recording”, set function selection to “Stop Recording”, click the add button to generate the Lua program. When running this program, the robot will track for 21s and then exit tracking.

../_images/527.png

Figure 9.8-3-6 Custom Duration Tracking Typical Lua Program

9.8.3.1.3. IO Trigger Tracking Operation Process

Step1: Click “Initial Setup” - “Peripherals” - “Line Laser Sensor” - “Adapted Devices” to enter the configuration page. The configuration page includes “Sensor Configuration”, “Communication Configuration and Loading”, “Reference Calculation”, etc.

Click “Sensor Configuration” to set sensor input filter parameters, set the maximum difference according to actual conditions, select data processing as “Raw Data (No Transformation)”, set the sensitivity coefficient X direction to 0, set Y direction and Z direction according to actual conditions, recommended to set to 1; click “Communication Configuration and Loading” to input corresponding communication parameters to connect the laser sensor. For detailed configuration, refer to the corresponding section of the user manual.

../_images/528.png

Figure 9.8-3-7 Line Laser Sensor Configuration

Step2: Calibrate the tool coordinate system and the laser sensor coordinate system. Calibrate the tool coordinate system using the “Six-Point Method”, and calibrate the laser sensor coordinate system using the “Five-Point Method”. Tool coordinate system and laser sensor coordinate system calibration are not the focus of this function introduction. For detailed calibration methods, refer to the corresponding section of the user manual.

Step3: Adjust the workpiece and laser beam position as shown in the figure below. The black rectangle is the workpiece, the red line segment is the laser beam. The laser beam should be perpendicular to the workpiece edge to be tracked, and the workpiece movement direction should be parallel to the laser beam. The workpiece moves at a constant speed, recommended speed is 15mm/s. Too fast will degrade tracking performance.

../_images/525.png

Figure 9.8-3-8 Workpiece and Laser Beam Relative Position Schematic

Step4: Click “Teach Program” - “Laser Tracking” - “Data Recording”, set function selection to “Record and Reproduce Simultaneously”, set fixed-point tracking motion type to “Robot Motion”, set fixed-point tracking trigger mode to “IO”. Tracking starts when IO is triggered and stops when the IO signal is removed. The settings of other parameters are the same as laser tracking using extended axis. Click the “Add” button below.

../_images/529.png

Figure 9.8-3-9 IO Tracking Parameter Settings

Step5: Click “Teach Program” - “Laser Tracking” - “Data Recording”, set function selection to “Stop Recording”, click the add button to generate the Lua program. When running this program, tracking starts when IO is triggered and stops when the IO signal is removed.

../_images/530.png

Figure 9.8-3-10 IO Tracking Typical Lua Program

9.8.4. LT-Rec command

Click the “LT-Rec” icon to enter the LT-Rec command editing interface.

This command realizes the function of taking out the starting point and end point of laser tracking recording, so that the robot can automatically move to the starting point position, which is suitable for the occasion where the movement starts from the outside of the workpiece and laser tracking recording is performed. At the same time, the host computer can obtain the information of the starting point and end point in the recorded data. for follow-up exercise.

Realize the adjustable function of laser tracking and reproduction speed, so that the robot can record at a very fast speed, and then reproduce according to the normal welding speed, which can improve the working efficiency.

../_images/125.png

Figure 9.8-4 LT-Rec command interface

9.8.5. W-Search command

Click the “W-Search” icon to enter the W-Search command editing interface.

This command is a welding wire positioning command, including three commands of start of positioning, end of positioning and calculation of offset. This command is generally used in welding scenes and requires the combination of welding machine and robot IO and motion commands.

../_images/126.png

Figure 9.8-5 W-Search command interface

In writing a program, usually first set the start command of the search, and then add two LIN instructions to determine the direction of the search. After the search is successful, obtain the calculated offset, and pass the offset through the overall offset command. To take effect into the real welding motion command, the program example is as follows.

../_images/127.png

Figure 9.8-5-1 W-Search example(1D)

9.8.6. Weld-Trc command

Click the “Weld-Trc” icon to enter the Weld-Trc command editing interface.

This command realizes the robot seam tracking and uses the deviation detection of the welding seam to compensate the trajectory, and the arc sensor can be used to detect the seam deviation.

Step1: Upper and lower compensation reference current setting method: feedback, set the upper and lower reference current start counting and the upper and lower reference current counting

../_images/128.png

Figure 9.8-6-1 Weld-Trc command interface-Feedback

Step2:Upper and lower compensation reference current setting method: constant, set the upper and lower reference current

../_images/129.png

Figure 9.8-6-2 Weld-Trc command interface-constant

Step3:Left and right compensation parameter interactive page

../_images/130.png

Figure 9.8-6-3 Weld-Trc command interface-left and right compensation parameters

9.8.7. Robot Arc Tracking System Composition

During the collaborative robot arc tracking welding process, the welding machine feeds back the real-time welding current and voltage signals to the robot. The robot performs welding trajectory position compensation based on the real-time feedback of welding current and voltage values to achieve the arc tracking effect. The feedback of current and voltage signals between the welding machine and the robot can be achieved in the following four ways. The first two require an additional PLC for data relay, while the latter two involve a direct connection between the welding machine and the robot control box:

①CANopen or Other Bus Communication: If your welding machine supports bus communication protocols such as CANopen, EtherCAT, or ModbusTCP (e.g., OTC NBC-500RP, Megmeet A2 series, etc.), the PLC and the welding machine can communicate directly via the relevant communication protocol. The corresponding welding current signal can be transmitted directly to the PLC via communication and then fed back to the robot via UDP communication.

../_images/277.png

Figure 9.8-6-4 Robot Arc Tracking System Composition Topology Diagram (PLC and Welding Machine Bus Communication)

a-Computer; b-Robot and Control Box; c-PLC and Bus Communication Module; d-Welding Machine

②PLC + IO Analog: The PLC can also directly collect analog signals and then convert the analog signals into current values with a certain conversion relationship to feed back to the robot. If your welding machine has a real-time welding current analog output channel, you can directly connect this channel to the analog input module of the PLC. If your welding machine does not have a real-time welding current analog output channel, you can connect an external Hall current sensor. The sensor collects the real-time welding current signal and converts the welding current signal into an analog signal output to the PLC analog input module.

../_images/278.png

Figure 9.8-6-5 Robot Arc Tracking System Composition Topology Diagram (PLC Collecting Analog Signals)

a-Computer; b-Robot and Control Box; c-PLC and Analog Input Module; d-Welding Machine and Hall Current Sensor

③Control Box AI: The robot control box IO ports have two analog input channels (0 ~ 10V). If your welding machine has a real-time welding current analog output channel, you can directly connect this channel to the analog input port of the control box. If your welding machine does not have a real-time welding current analog output channel, you can connect an external Hall current sensor. The sensor collects the real-time welding current signal and converts the welding current signal into an analog signal output to the analog input channel of the control box. There is usually a linear relationship between the analog input value and the actual welding current value. Detailed parameter settings are described later in “Arc Tracking Channel Configuration.”

../_images/534.png

Figure 9.8-6-6 Robot Arc Tracking System Composition Topology Diagram (Control Box AI Collecting Analog Signals)

a-Computer; b-Robot and Control Box; c-Welding Machine and Hall Current Sensor

④Ethernet Communication (ModbusTCP): If your welding machine supports ModbusTCP communication, the robot can directly control the welding and read real-time current and voltage feedback values via ModbusTCP. As shown in Figure 1-4. The ModbusTCP communication between the robot and the welding machine uses the control box peripheral open protocol. For details, see “8.6.6. Digital Communication Protocol (Modbus TCP).”

../_images/535.png

Figure 9.8-6-7 Robot Arc Tracking System Composition Topology Diagram (ModbusTCP Communication)

a-Computer; b-Robot and Control Box; c-Welding Machine

9.8.7.1. Welding machine model and setting

Table 9.8-1 Verified welding machine model

Verified welding machine model

MEGMEET ArtsenII CM350

Table 9.8-2 Welding machine function setting

Function number

Set the parameters

F18

20

F19

56

9.8.7.2. PLC model and settings

Table 9.8-3 Verified PLC models

Verified PLC models

INOVANCE Easy521

Table 9.8-4 PLC key settings

Settings

Set the contents

Communication protocols

CANOPEN

Feedback current sampling source

Feedback data from welding machine

Synchronization period

2ms

Annex:PLC Program

9.8.7.3. Arc tracking function

1)Introduction to the arc tracing feature

../_images/279.png

Figure 9.8-7-1 Typical arc tracing scenario

Typical scenarios for the arc tracing function include: a. welding the workpiece (the weld groove is at a right or acute angle), b. the welding gun, e. weld center line.

The arc tracking function can tracing the welding groove through the collected welding current information and the swing parameters: c. up and down (depth) direction tracking and d. left and right (center line) direction tracking.

2)Communication Configuration

①CANopen or Other Bus Communication:

Open WebApp and click “Initial”->”Peripheral” -> “Welder” in turn.

../_images/280.png

Figure 9.8-7-2 Open welding config

The control type is selected as “Digital communication protocol”. Since the robot communicates with PLC through UDP, UDP communication parameters need to be configured. The meanings of each parameter are as follows:

IP address:IP address of PLC for UDP communication;

Port number:PLC UDP communication port number;

Communication cycle:The cycle of UDP communication between the robot and the PLC, the default is 2ms;

Packet loss detection cycle and Packet loss times:When the number of lost packets in the packet loss detection period exceeds the specified value, the robot reports an error message indicating UDP Packet loss Exception and automatically cuts off the communication;

Communication interruption confirmation time:The robot does not receive a complete PLC feedback packet within this period of time, which will report “UDP communication interruption” error alarm, and cut off UDP communication;

Automatic reconnection after communication interruption:Whether the robot automatically reconnects after detecting UDP communication interruption;

Reconnection period and Num of reconnections:After automatic reconnection of UDP communication interruption is enabled and UDP communication interruption is detected, the robot reconnects at the set period. When the reconnection times reach the maximum set value and the connection is not successful, the robot reports an error alarm of “UDP communication interruption” and disconnects the UDP communication at the same time.

After configuring the above parameters, click the “Configure” and “Load” buttons successively.

../_images/281.png

Figure 9.8-7-3 Selecting the control type

②PLC + IO Analog:

Same as “①CANopen or Other Bus Communication,” the PLC program converts the input analog data into current and voltage data in the UDP communication protocol and sends it to the robot.

③Control Box AI:

No communication configuration is required. Simply connect the I/O cables between the control box and the welding machine correctly. The real-time welding current and voltage feedback analog lines from the welding machine are input to the robot control box AI0 and AI1 ports.

④Ethernet Communication (ModbusTCP):

Correctly connect the network cable between the robot and the welding machine. In WebApp, click sequentially on “Initial Settings,” “Peripherals,” “Control Box,” “Peripheral Open Protocol.” Upload the welding machine communication protocol to the robot, then click “Configure” and “Load” buttons sequentially. The robot will then establish a ModbusTCP communication connection with the welding machine.

../_images/542.png

Figure 9.8-7-4 Establishing Arc Tracking Ethernet Communication

Note

The arc tracking effect depends on fast real-time welding current and voltage data feedback. If the feedback frequency is slow, it may lead to weld seam tracking failure. Therefore, when using ModbusTCP for welding machine communication, it is necessary to reasonably set the communication cycle in the protocol. The recommended communication cycle is less than 10ms.

3) Channel Configuration

①CANopen or Other Bus Communication:

Click sequentially on “Initial Settings” -> “Peripherals” -> “Welding Machine” -> “Digital Communication Protocol (UDP).”

../_images/282.png

Figure 9.8-7-5 Selecting Welding Machine Control Type as “Digital Communication Protocol (UDP)”

Find the “Arc Tracking Channel” at the bottom of the page. Select the corresponding extended AI channel based on the actual configuration. The default welding current AI channel is “Aux-AI0” and the welding voltage AI channel is “Aux-AI1”. Click the “Configure” button.

Note

The UDP communication protocol between the robot and the PLC is detailed in “Appendix 1: Robot UDP Communication Protocol.” The feedback data from PLC to the robot in the protocol includes the actual welding current and voltage feedback input channels in bytes 74~77.

During welding, the PLC collects real-time welding current signals via CANOpen or other buses and provides feedback to the robot for arc tracking through the actual welding current and voltage values in bytes 74~77.

../_images/536.png

Figure 9.8-7-6 Bus Communication Arc Tracking Channel Configuration

②PLC + IO Analog:

The configuration is the same as “①CANopen or Other Bus Communication.” In the PLC program, the user converts the read analog input into actual welding current and voltage feedback values through numerical conversion, and assigns these values to the actual welding current and voltage feedback input channels (bytes 74~77) in the feedback data packet from PLC to the robot in the UDP communication protocol between the robot and the PLC.

③Control Box AI:

Click sequentially on “Initial Settings” -> “Peripherals” -> “Welding Machine,” “Controller I/O.”

../_images/537.png

Figure 9.8-7-7 Selecting Welding Machine Control Type as “Controller I/O”

Find the “Arc Tracking Channel” at the bottom of the page. Select Welding Current AI as “Ctrl-AI0” and Welding Voltage AI as “Ctrl-AI1”. Click the “Configure” button. The control box analog input 0~10V often has a linear relationship with the actual feedback current and voltage values, so it is necessary to configure the actual welding current and voltage values corresponding to different analog inputs.

In the “Analog Current-Voltage Relationship Diagram” section of the AI channel configuration, the parameter settings for the “A-V” and “V-V” interfaces need to refer to the analog input/output table/chart of the welding machine being used.

For example, configure the lower and upper limits of the welding current for the control box current analog AI as 0A and 500A, respectively. Configure the lower and upper limits of the output voltage for the control box current analog AI as 0V and 5V, respectively, as the configuration parameters for the “A-V” interface in the “Analog Current-Voltage Relationship Diagram” section of the AI channel configuration. Click “Configure” to complete the configuration of the control box current analog AI channel.

../_images/538.png

Figure 9.8-7-8 Control Box Current Analog AI Configuration

For example, configure the lower and upper limits of the welding voltage for the control box voltage analog AI as 0V and 50V, respectively. Configure the lower and upper limits of the output voltage for the control box voltage analog AI as 1.018V and 10V, respectively, as the configuration parameters for the “V-V” interface in the “Analog Current-Voltage Relationship Diagram” section of the AI channel configuration. Click “Configure” to complete the configuration of the control box voltage analog AI channel.

../_images/539.png

Figure 9.8-7-9 Control Box Voltage Analog AI Configuration

④Ethernet Communication (ModbusTCP):

Click sequentially on “Initial Settings,” “Peripherals,” “Welding Machine,” “Digital Communication Protocol (Modbus TCP).”

../_images/540.png

Figure 9.8-7-10 Selecting Welding Machine Control Type as “Digital Communication Protocol (Modbus TCP)”

Find the “Arc Tracking Channel” at the bottom of the page. Select Welding Current AI as “Ethernet” and Welding Voltage AI as “Ethernet”. Click the “Configure” button.

../_images/541.png

Figure 9.8-7-11 Ethernet Communication Arc Tracking Channel Configuration

4)Introduction to the use of arc tracing function commands

The arc tracking function can be adapted to the swing welding movement, inserting the arc tracking start command after the swing welding arc starts, and inserting the arc tracking end command before the swing welding arc extinguishing.

../_images/283.png

Figure 9.8-7-12 Typical example of arc tracing

5)Introduction to the parameters of the function interface

Table 9.8-5 Arc tracking up-down compensation module

The name of the parameter

Meaning

Description

Arc tracking lag time

The time for the feedback current to lag

The default is 0ms, do not adjust it

Compensation for up-down deviations

Up-down compensating switches

You can choose to “on” or “off”

Up-down adjustment coefficients

The coefficient of the relationship between the current and the compensation distance (adjustment sensitivity)

The welding tends to be in a short-circuit transition state, and the current signal-to-noise ratio gradually decreases, so it is recommended to reduce the sensitivity

Up-down start compensating period

The fastest periods to start the up-down compensation

Associated with the swing frequency, it is better to open when the current tends to be stable for 3~4s after arcing. If the oscillation frequency is 1 Hz, the parameter can be 4, if the frequency is 2 Hz, the parameter can be 8, and so on

The maximum distance of up-down compensation each period

The maximum distance of compensation per up-down compensation period

According to the welding scene setting, the faster the weave frequency, the smaller the compensation distance

The maximum distance of compensation for the up-down totals

The maximum cumulative distance of compensation for a single complete welding process

According to the welding scene setting, the larger the weld deviation, the larger the setting

Up-down coordinate system selection

The coordinate system in which the compensation value is compensated

If there is a welding weave, select “Weave”, otherwise select “Tool” or “Frame”

Up-down reference current setting method

Selection of the reference current acquisition method

You can choose “Feedback” by reading the feedback current, or “Constant” by filling in the current value directly

The up-down reference current samples start counting

The number of periods for which the reference current is harvested with a delay

Associated with the weave frequency, it is better to open when the current tends to be stable for 3~4s after arcing. If the weave frequency is 1 Hz, the parameter can be 4, if the frequency is 2 Hz, the parameter can be 8, and so on

Up-down reference current sampling counts

Reference current feedback mode, the statistical period of collecting the reference current

Default 1 CYC

Up-down reference currents

Reference current constant mode, reference current value

It can be filled in manually to achieve the desired compensation height

Table 9.8-6 Arc tracking left-right compensation module

The name of the parameter

Meaning

Parameter description

Arc tracking lag time

The time for the feedback current to lag

The default is 0ms, do not adjust it

Compensation for left-right deviations

Left-right compensation switches

You can choose to “On” or “Off”

Left-right compensation coefficients

The coefficient of the relationship between the current and the compensation distance (adjustment sensitivity)

The welding tends to be in a short-circuit transition state, and the current signal-to-noise ratio gradually decreases, so it is recommended to reduce the sensitivity

Left-right compensation start counting

The fastest count to start left-right compensation function

Associated with the weave frequency, it is better to start when the current tends to be stable for 3~4s after arcing. If the weave frequency is 1 Hz, the parameter can be 4, if the frequency is 2 Hz, the parameter can be 8, and so on

Left-right the maximum distance of compensation each time

The maximum distance of compensation per compensation cycle

According to the welding scene setting, the faster the swing frequency, the smaller the compensation distance

The maximum distance of compensation for the left -right totals

The maximum cumulative distance of compensation for a single complete welding process

According to the welding scene setting, the larger the weld deviation, the larger the setting

6)Scope of application

Table 9.8-7 Up-down compensation On, Left-right compensation Off

Key parameters

Parameter range

Weave frequency Hz

0 (without welding swing), 0.5 to 2 (with weld swing)

Weave amplitude mm

0 (without welding swing), 3 through 7 (with welding swing)

Set the voltage V

>17

Set the current A

>160

Table 9.8-8 Up-down compensation Off, Left-right compensation On

Key parameters

Parameter range

Weave frequency Hz

0.5 to 2

Weave amplitude mm

3 to 7

Set the voltage V

>17

Set the current A

>160

Table 9.8-9 Up-down compensation On, Left-right compensation On

Key parameters

Parameter range

Weave frequency Hz

0.5 to 2

Weave amplitude mm

3 to 7

Set the voltage V

>19

Set the current A

>210

7)Precautions

  1. The left-right compensated arc tracking function can only be adapted to symmetrical triangle or sine weave based on line trajectory.

  2. The starting position of the welding to be able using the compensation function must be accurately above the weld (the axis of the welding gun is in the center of the fillet weld), and the welding gun should not be too close to the seam, otherwise there is a risk of hitting the welding gun.

  3. The material on both sides of the groove of the workpiece needs to be consistent.

  4. The coordinate size and attitude of the workpiece need to be accurately calibrated using the 6-point method.

  5. If the deviation between the set trajectory and the seam is larger, the maximum compensation distance each time and the total maximum compensation distance should be larger too.

  6. The deviation between the set trajectory and the end point of the weld should not be larger than 100mm/m, and too large the deviation may cause the welding wire or even the welding gun to hit the workpiece, so that the welding position deviates from the preset trajectory (the weave is not in place), resulting in the arc tracking function can not work normally.

  7. If a small set current and voltage is selected for welding, the compensate coefficient of arc tracking should be reduced accordingly to reduce the instability compensation caused by the burr of the feedback current.

  8. When different coordinate systems are selected for arc tracking, the positive and negative signs of the up-down and left-right compensation coefficients may need to be adjusted, which can be judged by test welding in addition to the direction of the corresponding coordinate system. If the welding trajectory (left) is taught on an inclined plate, the welding trajectory (right) moves in the direction of descent based on the tilt gradient of the swing plane after arc tracking is enabled, and the height of the welding torch at the end is close to the starting point, then the sign of the adjustment coefficient is correct.

../_images/284.png

Figure 9.8-7-13 Set the tilt swing trajectory (left), weld trajectory when the symbol is correct (right)

9.8.8. Adjust command

Click the “Adjust” icon to enter the Adjust command editing interface.

This command adaptively adjusts the posture of the welding torch for the scene of welding tracking. After recording the three corresponding posture points, add the posture adaptive adjustment command according to the actual direction of the robot’s movement. See Robot Peripherals chapter for details.

../_images/134.png

Figure 9.8-8 Adjust command interface

9.9. Force control command interface

../_images/135.png

Figure 9.9 Force control command interface

9.9.1. F/T command

Click the “F/T” icon to enter the F/T command editing interface.

The command includes nine commands: FT_Guard (collision detection), FT_Control (constant force control), FT_Compliance (compliance control), FT_Spiral (spiral insertion), FT_Rot ​​(rotation insertion), FT_Lin (linear insertion), FT_FindSurface (surface positioning), FT_CalCenter (center positioning), FT_Click (click force detection), see the robot peripherals chapter for details.

../_images/136.png

Figure 9.9-1 F/T command interface

9.9.1.1. Force Control Rotation Insertion Optimization Function

9.9.1.1.1. Overview

The force control rotation insertion function is typically used for undertaking rotation insertion actions. Before running the action, the robot end-effector needs to be moved to a fully aligned taught hole position. According to the application scenario, set corresponding motion parameters and an external force detection failure handling strategy. After completion, if the detected external force does not reach the set threshold, the user can independently choose to stop the entire program (function configured as “Error”, interface displays red error) or choose to continue motion (function configured as “Warning”, interface displays yellow warning).

9.9.1.1.2. Operation Process

Step1: Click sequentially on “Teach Program” -> “Program Programming” -> “Force Control Set” -> “Rot” instruction. Set corresponding motion parameters according to the actual application scenario. The external force detection failure handling strategy can be set to “Error” or “Warning”. When configured as “Error”, if the robot detects that the external force is always less than the set threshold and the set rotation angle has been reached, an error will be reported on the interface and subsequent program execution will stop. When configured as “Warning”, if the robot detects that the external force is always less than the set threshold and the set rotation angle has been reached, a warning will be displayed on the interface and subsequent program execution will continue.

../_images/531.png

Figure 9.9-2 Force Control Rotation Insertion Parameter Configuration

Step2: The force control rotation insertion function needs to be combined with the “FT_Control” function for motion, with the same motion parameters set. Typical Lua programs with the external force detection failure handling strategy set to “Error” and “Warning” are shown in the figures below respectively.

../_images/532.png

Figure 9.9-3 Typical Lua Program Configured as “Error”

../_images/533.png

Figure 9.9-4 Typical Lua Program Configured as “Warning”

9.9.2. Torque command

Click the “Torque” icon to enter the Torque command editing interface.

This command is a torque recording command, which realizes the real-time torque recording collision detection function. Click the “Torque Record Start” button to continuously record the collision situation during the operation of the motion command, and the recorded real-time torque is used as the theoretical value of the collision detection judgment to reduce the probability of false alarms. When the set threshold range is exceeded, the collision detection duration is recorded. Click the “Torque Recording Stop” button to stop recording. Click “Torque Record Reset” to return the status to the default state.

../_images/137.png

Figure 9.9-2 Torque command interface

9.10. Visual command interface

../_images/138.png

Figure 9.10 Visual command interface

9.10.1. 3D command

Click the “3D” icon to enter the 3D command editing interface.

This command generates commands for 3D vision program examples. Users can refer to the generated programs and communicate with other vision devices, including two program case references of camera calibration and camera capture.

../_images/139.png

Figure 9.10-1 3D command interface

9.11. Palletizing command interface

../_images/140.png

Figure 9.11 Palletizing command interface

9.11.1. Pallet command

Click the “Pallet” icon to enter the Pallet command editing interface.

This instruction generates instructions for the palletizing program, which is consistent with the matrix movement function in Section 3.9.6. For details, refer to that chapter.

../_images/141.png

Figure 9.11-1 Pallet command interface

This function controls the regular movement of the manipulator by setting the three-point coordinates and the values of the row and column layer and layer height, which is suitable for common palletizing applications. The first step is to select the robot movement mode, “PTP” or “Line”, the second step is to set the robot movement path, “head-to-tail walking method” or “bow walking method”, the third step is to set the stacking method, “stack stacking” or “unstacking”.

../_images/142.png

Figure 4.11-2 Matrix move

The fourth step is to teach three points according to the path. The first point is the starting point of the first row, and the arm posture is determined by this point during the whole movement process. The second point is the end point of the first row, and the third point is the end point of the last row. The fifth step is to set the number of rows and columns. The sixth step is to set the number of layers and the height of each layer. The last step is to name the matrix motion program file, and a matrix movement program is generated successfully.

../_images/143.png

Figure 4.11-3 Matrix move

9.12. Communication command interface

../_images/144.png

Figure 9.12 Communication command interface

9.12.1. Modbus command

Click the “Mobus” icon to enter the Modbus command editing interface.

The command function is a bus function based on the ModbusTCP protocol. The user can control the robot to communicate with the ModbusTCP client or server (the master station communicates with the slave station) through relevant instructions, and perform read and write operations on coils, discrete quantities, and registers.

../_images/145.png

Figure 9.12-1 modbus command master interface

../_images/146.png

Figure 9.12-2 modbus command slave interface

For more operating functions of ModbusTCP, please contact us for consultation.

9.12.2. Xmlrpc command

Click the “Xmlroc” icon to enter the Xmlrpc command editing interface.

XML-RPC is a remote procedure call method for transferring data between programs using xml over sockets. In this way, the robot controller can call the function (with parameters) in the remote program/service and obtain the returned structured data. The Robot Controller handles all the details of writing XML-RPC client messages and handling conversions between data types and XML.

../_images/147.png

Figure 9.12-3 Xmlrpc command interface

Important

  1. The controller acts as a client to connect to the remote custom port;

  2. The controller acts as a client to call the remote function;

  3. Support calling different remote functions;

  4. Support string array parameter input and character array result return, the number of array elements can be customized;

Support double-type array parameter input and double-type array result return, the number of array elements can be customized;

XmlrpcClientCall(serverUrl,methodName,tableType,param)

serverUrl server url, for example:"http://192.168.58.29:50000/RPC2"

methodName Call function name, "example.add"

tableType 1-double array, 2-string array

param call function parameters
XmlrpcClientCall(error, result)

error 0 - no error, 1 - error

result If the parameter is passed in as a double array, the result is a double array,

If the parameter is passed in as an array of string type, the result will be an array of string type

9.13. Auxiliary command interface

../_images/148.png

Figure 9.13 Auxiliary command interface

9.13.1. Thread command

Click the “Thread” icon to enter the Thread command editing interface.

The Thread command is an auxiliary thread function. Users can define an auxiliary thread to run simultaneously with the main thread. The auxiliary thread mainly performs data interaction with external devices, supports socket communication, obtains robot DI status, robot DO status settings, and obtains robot status information. Thread data interaction, the data obtained by the main thread through the auxiliary thread is used to control the judgment of the robot’s motion logic, the screenshot of the user program example:

../_images/149.png

Figure 9.13-1 Thread program example

9.13.2. Function command

Click the “Function” icon to enter the Function command editing interface.

This command is to call the function interface function, provide the robot interface function to the customer to choose, and remind the customer of the parameters required by the function, which is convenient for the customer to write script commands, and more functions are being added one after another.

../_images/150.png

Figure 9.13-2 Function command interface

9.13.3. PT-Mode command

Click the “PT-Mode” icon to enter the PT-Mode command editing interface.

This command is mainly used for mode switching between system mode and point table mode. Teaching points in different point tables can be applied by switching point tables.For details, see Chapter 11 - Points.

../_images/151.png

Figure 9.13-3 PT-Mode command interface

9.14. Teaching program is not saved for verification

On the program teaching page, after opening/creating a new program, if the teaching program is modified, the program is not saved.

If you click “Open”, “New”, “Export”, “Rename” and other related file operations, the “Do you want to save this program” pop-up box will be triggered, prompting “The current program has changed. Do you want to save the changes to this program?” ,As shown below.

../_images/152.png

Figure 9.14-1 The current page program does not save verification

Step1:Click the “Not Save” button, and the program will restore the unmodified data and continue to perform previous related file operations.

Step2:Click the “Save” button, the unsaved Lua program is saved successfully, and the previous related file operations continue to be performed.

If you leave the program teaching page and switch to other pages, the prompt “Do you want to save this program” will also be triggered, and you will still stay on the current teaching program page, as shown below.

../_images/153.png

Figure 9.14-2 Switch page program does not save verification

Step1:Click the “Not Save” button to jump to the previously selected page.

Step2:Click the “Save” button, and the unsaved Lua program is saved successfully and jumps to the previously selected page.

9.15. Teaching program encryption

The teaching procedure is divided into a state of encryption and non-encryption. The encryption level is divided into first-level encryption and secondary encryption. Among them, the level of first-level encryption is the highest, and the secondary is second. All teaching programs are displayed and set in the form of program encryption information in “System Settings - Custom Information”. Encryption level descriptions are provided to the right of the table.

../_images/154.png

Figure 9.15-1 Demonstration of teaching procedures

When the program is a first-level encryption state, after opening the program: the corresponding “export”, “preservation”, “existing as”, “copy”, “cut”, “delete”, “delete”, “delete”, “delete”, “delete” The buttons such as “upward”, “downward” and “editing mode switching” will be grayed. Click the icon to be invalid and it will prompt that the current program is in an encrypted state. The program “renamed” icon will hide. Add instruction bars and program editing areas are invisible and prompts to be locked in first-level encryption.

../_images/155.png

Figure 9.15-2 Program first-level encryption interface

When the program is second-level encryption, after opening the program on the “Program Demonstration” page: the corresponding “savings”, “copy”, “shear”, “paste”, “delete”, “upper”, “upper” in the operating bar The buttons such as the “Move” will turn ashes. Click the icon to be invalid and it will prompt that the current program is encrypted. The program “renamed” icon will hide. The adding instruction bar is not visible and prompts to be locked in a secondary encryption. The program editing area can browse the reading program normally.

../_images/156.png

Figure 9.15-3 Program second-level encryption interface

Both first -level encryption and second -level encryption can use the “export” function. Verification operations will be performed when importing. If the program of the same name is an encrypted file, the import operation will be interrupted and indicated that the coverage of the encryption program cannot be introduced.

../_images/157.png

Figure 9.15-4 Program import

9.16. Local teaching point

The local teaching point is bound to the current teaching program. When adding a program command, it can only be applied to the current teaching program and cannot be used in other teaching programs.

Add: Click the “Add Local Teaching Point” icon on the far right of the program file name to add local teaching points. (For detailed records of local teaching points, please refer to the teaching point records in robot operation)

../_images/158.png

Figure 9.16-1 Add local teaching points

Delete: Click the serial number column of the table to select the local teaching point to be deleted, and then click the “Delete” icon in the upper right corner of the title of the local teaching point to delete the local teaching point.

../_images/159.png

Figure 9.16-2 Delete local teaching point

Run: Click the “Start Running” icon in the data operation bar of the local teaching point table to perform a single-point operation of the local teaching point and move the robot to the position of this point.

../_images/160.png

Figure 9.16-3 Run local teaching point

Details: Click the “Details” icon in the data operation bar of the local teaching point table to view the details of the local teaching point.

../_images/161.png

Figure 9.16-4 Local teaching point details

9.17. Current program backup

After the user modifies the teaching program and clicks save, the “backup” function of the current program is triggered (the backup time is 1 year), and the initial content of the current program is saved and displayed on the right side, which is convenient for the user to compare the modified content. Users can view the corresponding program backup content by selecting a date, and click the “Delete” icon in the upper right corner to delete the current program backup content. The content of the current program backup can only be viewed, not modified.

../_images/162.png

Figure 9.17 Current program backup

9.18. Modbus TCP Communication

ModbusTCP is a commonly used communication protocol in industrial production. Faao collaborative robots provide two ways to communicate with your device: ModbusTCP master and ModbusTCP slave.

The collaborative robot supports up to 8 ModbusTCP masters to communicate with external devices at the same time, and each master supports up to 128 registers; the collaborative robot ModbusTCP slave has 128 coils, 128 discrete inputs, 64 holding registers and 64 input registers (holding registers and input register data types include unsigned, signed and floating point types). At the same time, some ModbusTCP slave input register addresses of collaborative robots are dedicated to feedback information such as the current robot’s joint position and movement speed, and some coil register addresses are dedicated to controlling the robot to start the program, stop the program, set the control box DO and other functions.

The robot ModbusTCP slave only supports establishing a connection with one master station. The robot can communicate with different devices as a master and a slave at the same time. The following is a detailed usage method.

9.18.1. ModbusTCP master

Before using the cooperative robot as the ModbusTCP master station to communicate with your equipment, please check the network connection between your equipment and the robot, and confirm that the network interfaces are in the same network segment.

There are several steps to use the robot ModbusTCP master station:

  • Add the master station;

  • Add registers;

  • Communication test;

  • Writing user programs;

  • Run user programs.

9.18.1.1. Add ModbusTCP master

Open the WebApp, click “Teaching” and “Program Teaching” in turn to create a new user program “testModbusMaster.lua”.

../_images/163.png

Figure 9.18-1 Create ModbusTCP master station user program

Click “ModbusTCP Settings” button to open the ModbusTCP function configuration page.

../_images/164.png

Figure 9.18-2 Open ModbusTCP Settings

Click “Master settings” and “Add Modbus master station” in turn to finish adding a ModbusTCP master station.

../_images/165.png

Figure 9.18-3 Add “ModbusTCP Master Station

According to your equipment, enter the name, slave ip, port number, slave number, communication cycle, and timeout in turn. The specific meanings of the above parameters are as follows:

Name:ModbusTCP master station name. Robots can create up to 8 master stations to connect with corresponding slave stations. Different master stations can be distinguished by unique names, such as PLC, camera, data acquisition card and FRRobot1;

Slave IP:the slave IP address to which the ModbusTCP master station of the robot is connected;

Note

The robot and slave equipment must be connected through the network cable first, and the IP addresses of the robot and slave equipment must be in the same network segment.

Port number:The port number of ModbusTCP slave station to be connected;

Slave station number:ModbusTCP slave station number to be connected;

Communication period: The period (ms) when the robot ModbusTCP master station inquires about the slave station status, which only affects the update speed of the slave station register data on the ModbusTCP Settings page, but does not affect the speed of reading or writing the ModbusTCP slave station register value in the lua program of the user.

Timeout Period: When using the ModbusTCP read/write interface for operations, if the system fails to establish a connection after exceeding the timeout period, it will report a Modbus not connected error. Unit: ms, valid range: 100-60000.

../_images/166.png

Figure 9.18-4 Setting ModbusTCP master station parameters

After the above parameters are correctly input, the ModbusTCP master station of the robot automatically establishes a connection with the configured slave station. After the connection is successful, the “Connection status” indicator on the page lights up.

Note

If you have confirmed that the relevant parameters of ModbusTCP master station are correctly configured, but the robot is not successfully connected with your equipment, please check the following configurations:

①The physical network connection between the robot and the slave equipment;

②The IP addresses of the two network physical ports of the robot teaching device and the control box are different, please confirm whether they are connected to the correct network port;

③Please confirm whether the network port of the robot and the network port of the slave station equipment are in the same network segment. If the IP address of the robot is 192.168.58.2, the IP address of the slave station equipment must be 192.168.58.0~192.168.58.255, and it cannot be the same as the IP address of the robot;

④Check whether the port number of the slave equipment is the same as the set port number. (If the connection status indicator is flashing, it means that the register address in the master station is wrong. Please check whether the register type and address are correct)

../_images/167.png

Figure 9.18-5 Connection status of Modbus TCP master station

At this point, we have completed the creation of a ModbusTCP master station for the robot. If you click “Add Modbus Master Station” again, you can create a new ModbusTCP master station (Figure 7). The robot can support up to 8 master stations to communicate with external devices at the same time. Double-click the “Delete” button in the upper right corner of the Modbus master station to delete the Modbus master station.

../_images/168.png

Figure 9.18-6 Add ModbusTCP master station again

9.18.1.2. ModbusTCP master add register

Click the “Add master register” button to add a register for this master station.

../_images/169.png

Figure 9.18-7 Add ModbusTCP master station register

Select the modbus register type, input address number and name of the master station in turn, and the meanings of each parameter are as follows:

Type:Register type, DI:discrete input; DO:coil; AI-unsigned:unsigned input register (0-65535); AI-signed:signed input register (-32768-32767); AI-float:float type input register (the data length of float type register is 32 bits, occupying two signed or unsigned registers); AO-unsigned:unsigned holding register (0-65535); AI-signed:signed holding register (-32768-32767); AI-float:float type holding register (the data length of float type register is 32 bits, occupying two signed or unsigned registers), among which the floating-point type registers in AI and AO are big-end display.

Address number:The address of ModbusTCP slave register to be read or written;

Name: The alias of the register. The ModbusTCP master station of the robot can set up at most 128 different registers, and each register can be distinguished by different names according to the actual meaning, such as “Start”, “Servo in Place” and “Liquid Level”.

../_images/170.png

Figure 9.18-8 Setting ModbusTCP master station register parameters

Click the “Add Master Register” button again to add another master register, and double-click the “Delete” button on the right side of the register to delete it, a register is added for each type.

Note

If the master station connection status indicator flashes after adding the master station register, it means that the master station register address cannot be read. Please check whether the register type and address are correct.

../_images/171.png

Figure 9.18-9 Adding Multiple Master Station Registers

9.18.1.3. ModbusTCP master communication test

Before the communication test, please check whether the “Cnnection status” indicator of ModbusTCP master station is always on. If the indicator is always on, it means that the current connection has been successful.

The robot Modbus master station register has an “address value” value box for displaying the current register value, in which the registers of DI (discrete input) and AI (input register) are read-only and the corresponding address values are gray non-editable value boxes.

When the value of the corresponding address of the slave station changes, the robot master station displays the current value synchronously corresponding to the register address value. DO (coil) and AO (holding register) are readable and writable registers, so their addresses are white editable value boxes, which can be used to read the values of the corresponding registers of ModbusTCP slave stations or modify the values of the registers on the Modbus master station setting page of the robot.

../_images/172.png

Figure 9.18-10 Modbus master station address value

  1. Numerical monitoring of DI and AI type registers of master

On the external ModbusTCP slave device, set the address value of No.255 of DI (discrete input) register to 1, change the address value of No.257 of AI (input register) to No.123, change the address value of No.258 to -123, and change the address value of No.259 to 123.3. At this time, the address value of the corresponding register on the robot Modbus master station setting page will be displayed accordingly.

Note

Because the register with address 259 is a floating-point register, it actually occupies two 16-bit registers 259 and 260 to store a floating-point number, so you can’t set a separate register to operate the No.260 register of AI, otherwise a numerical error will occur.

../_images/173.png

Figure 9.18-11 Modbus master station displays the values of DI and AI registers

  1. Numerical writing of DO and AO type registers in the master

In the Modbus master station setting page of the robot, enter 1 in the No.255 address value input box of the DO (coil) type register named ‘Start’, and enter 65535,-32767 and 128.78 input boxes of the AO (holding register) named ‘Target position A’, ‘Target position B’ and ‘Target position C’ respectively.

../_images/174.png

Figure 9.18-12 Modbus master station writes DO and AO registers

3. Numerical monitoring of DO and AO type registers of master If you change the values of DO (coil) and AO (holding register) in ModbusTCP slave station, the register address value of ModbusTCP master station setting page will not be updated immediately. You need to click the “Refresh” button in the upper right corner of master station configuration, and then the register address values of DO and AO on the page will be updated.

../_images/175.png

Figure 9.18-13 Refresh the DO and AO address values of ModbusTCP master station.

9.18.2. Write ModbusTCP master program

Click “Program” and “Communication command” in turn to open the communication command adding page.

../_images/176.png

Figure 9.18-14 Open the communication command add page

Click “Modbus”.

../_images/177.png

Figure 9.18-15 Select Modbus

Click “Modbus_TCP”.

../_images/178.png

Figure 9.18-16 Select Modbus_TCP

Select “Master station (client)” to open the ModbusTCP master station command addition page.

../_images/179.png

Figure 9.18-17 Selecting Master Station (Client)

  1. Write a single digital output DO (coil)

Select “Modbus master name” as the master station ‘PLC’ added on the Modbus master station setting page before, with DO name as ‘Start’, register number as 1 and register value as 1, and click the “Write digital output” button. Finally, scroll to the bottom of the page and click the “Apply” button (Figure 21).

../_images/180.png

Figure 9.18-18 Adding Write Single Digital Output

At this time, the robot program “testModbusMaster.lua” has added an command for the Modbus master station of the robot to write a single digital output. Switch the robot to the automatic mode, click the start button, and the robot will write the address value of the coil register ‘Start’ corresponding to the master station “PLC” as 1.

../_images/181.png

Figure 9.18-19 Writing a single coil lua program

  1. Write multiple digital outputs DO (coils)

Open the ModbusTCP master station command adding page, select Modbus master name as the master station ‘PLC’ added in the Modbus master station setting page before, the name of DO is ‘Start’, the number of registers is 5, and the register values are 1,0,1,0,1. the number of register values should correspond to the set number of registers, and multiple register values should be separated by English commas, and click the ‘Write digital output’ button. Finally, scroll to the bottom of the page and click the “Apply” button.

../_images/182.png

Figure 9.18-20 Configures writing multiple digital outputs

At this time, the robot program “testModbusMaster.lua” has added an command that the robot Modbus master station writes multiple digital outputs, so as to switch the robot to the automatic mode, click the start button, and the robot will write the values of the coil register ‘Start’ corresponding to the master station ‘PLC’ and the following four coils as 1, 0, 1, 0 and 1 respectively.

../_images/183.png

Figure 9.18-21 Programming multiple coils lua

  1. Read a single digital output DO (coil)

Open the ModbusTCP master station command addition page, select “Modbus master name” as the master station “PLC” added in the Modbus master station setting page before, the DO name is “Start”, the number of registers is 1, and the register value does not need to be filled in, and click “Read digital output”. Finally, scroll to the bottom of the page and click the “Apply” button.

../_images/184.png

Figure 9.18-22 Configuring Reading a Single Digital Output

At this time, the robot program “testModbusMaster.lua” has added an command for the robot Modbus master station to read a single digital output.

../_images/185.png

Figure 9.18-23 Program for reading a single coil

Usually, after reading the Modbus register, the read value is stored in a variable, so it is necessary to define a variable to store the read value. As shown in figure 29, click the “switch mode” Button to switch the robot lua program to an editable state, and write the variable “startValue” with added return value before the “ModbusMasterReadDO” command, and the value read after executing the program will be stored in “startValue”.

../_images/186.png

Figure 9.18-24 Reading a single digital output into a variable

The register value of coil type is only 0 and 1, so different operations can be carried out by judging the different register values in robot programs. As shown in Figure 30, click the “Switch Mode” button to switch the robot teaching program to the non-editable mode, and add two joint motion commands to move to two different points “P1” and “P2” respectively.

../_images/187.png

Figure 9.18-25 Add motion commands of different points

The program is switched to the editable mode again, and the judgment condition of the coil value “startValue” is written. When the value of “startValue” is 1, the robot moves to the point “P1”, otherwise the robot moves to the point “P2”.

../_images/188.png

Figure 9.18-26 Move to different points according to different coil values

Finally, switch the robot program to non-editable mode, switch the robot to automatic mode, and start the running program on the premise of confirming safety. The first two lines of the program set the DO value of the coil named “Start” to 1, so the robot will move to the “P1” point after executing the program.

../_images/189.png

Figure 9.18-27 Read the register value of a single coil and move it

  1. Read multiple digital DO (coils)

Open the ModbusTCP master station command adding page, select “Modbus master name” as the master station “PLC” added in the Modbus master station setting page, the name of DO is “Start”, the number of registers is 6, and the register value does not need to be filled in, and click “Read digital output”. Finally, scroll to the bottom of the page and click the “Apply” button (Figure 34).

../_images/190.png

Figure 9.18-28 Configuring Reading Multiple Digital Outputs

At this time, the robot program “testModbusMaster.lua” has added an command that the robot Modbus master station reads multiple digital outputs.

../_images/191.png

Figure 9.18-29 Reading multiple digital output programs

Click the “switch mode” button “” to switch the robot lua program to the editable state. Since the number of readings is six, it is necessary to write and add six return value variables “value1,value2,Value3,Value4, Value5,value6” before the “ModbusMasterReadDO” command, and the six register values read after the program execution will have the above six variables respectively.

../_images/192.png

Figure 9.18-30 Reading Multiple Digital Outputs and Storing Variables

  1. Read DIgital input DI (discrete input)

Open the ModbusTCP master station command addition page, select “Modbus master name” as the master station “PLC” previously added in the Modbus master station setting page, the DI name is “Servo arrive”, the number of registers is 2, and click “Read digital input”. Finally, scroll to the bottom of the page and click the “Apply” button (Figure 38).

../_images/193.png

Figure 9.18-31 Configuring Read Digital Input

At this time, the robot program “testModbusMaster.lua” has added an command for the Modbus master station to read digital input.

../_images/194.png

Figure 9.18-32 Reading digital input program commands

Click the “Switch Mode” button “” to switch the robot lua program to an editable state, and write the return value variables “state1,state2” before the “ModbusMasterReadDO” command. The two digital input values read after executing the program will be stored in the variables “state1” and “state2” respectively, and you can control the robot to do different operations by judging the variable values.

../_images/195.png

Figure 9.18-33 Reading digital input and storing variables

6. Read and write analog input AI (input register) and analog output AO (holding register) The reading and writing operations of analog input AI (input register) and analog output AO (holding register) are basically the same as those of digital input DI (discrete input) and digital output DO (coil), but the difference is that the data range of the latter is only 0 or 1, while the data range of the former is larger, so the specific operations can refer to the programming of digital input and digital output, and only the reading input AI (Figure 41) and writing analog output AO are shown here.

../_images/196.png

Figure 9.18-34 Reading analog input AI

../_images/197.png

Figure 9.18-35 Read and write analog output AO

  1. Waiting for digital input

Open the ModbusTCP master station command addition page, find the “Wait for digital input to be set”, that is, wait for DI discrete input setting, select the “servo in place” register with DI name as the configuration, the waiting status is “True” and the timeout time is 5000 ms. Click “Add” button, and finally click “Apply” button.

../_images/198.png

Figure 9.18-36 Add the command of waiting for DI input

At this time, the robot program “testModbusMaster.lua” has added an command that the robot Modbus master station waits for DIgital input DI. After starting the program, the robot will wait for the value of the “Servo arrive” register of the “PLC” master station to become true, that is, the value 1. Since the set timeout is 5s, when the “Servo arrive” signal is still 0 after the robot waits 5s, the robot program will report a timeout error and the program will stop.

../_images/199.png

Figure 9.18-37 Waiting for Digital Input DI Program

  1. Waiting for analog Input

Open the ModbusTCP master station command addition page, find “Waiting for analog input setting”, that is, waiting for the setting of AI input register, select the configured “liquid level” register with AI name, waiting status of “>”, register value of 255 and timeout time of 5000 ms.. Click “Add” button, and finally click “Apply” button.

../_images/200.png

Figure 9.18-38 Add Waiting for Analog Input

At this time, the robot program “testModbusMaster.lua” has added an command that the robot Modbus master station waits for the AI input register value. After starting the program, the robot will wait for the “Liquid level” register value of the “PLC” master station to be greater than 255. Since the set timeout is 5s, when the “Liquid level” signal is still less than 255 after the robot waits for 5s, the robot program will report a timeout error and the program will automatically stop running.

../_images/201.png

Figure 9.18-39 Waiting for AI Input Register Program

Open the ModbusTCP Master command addition page, find the “Wait for Analog Input Setting” (i.e., wait for AI input register setting). Select the AI name as the configured “Liquid Level” register, set the wait condition to “=”, the register value to 255, and the timeout to 5000ms. Click the “Add” button, and finally click the “Apply” button.

../_images/494.png

Figure 9.18-39-2 Add Wait for Analog Input

At this point, a Modbus Master command to wait for the AI input register value has been added to the robot program “test.lua”. After starting the program, the robot will continuously wait for the “Liquid Level” register value from the “PLC” master to equal 255. Since the timeout is set to 5s, if the “Liquid Level” signal still does not equal 255 after the robot waits for 5 seconds, the robot program will report a timeout error and automatically stop running.

9.18.3. ModbusTCP slave

Robot ModbusTCP slave station provides four types of registers: Digital input (coil), Digital output (discrete input), Analog input (holding register) and Analog output (input register). The digital input and analog input are mainly used for the robot to read the data of the external ModbusTCP master station to control the robot operation, while the digital output and analog output are mainly used for the robot to send data signals to the external ModbusTCP master station equipment, and the external master station equipment reads the relevant register values to control the equipment operation. In addition to the above-mentioned general input and output, the robot also provides some “Functional digital input (coils)” for the external master station equipment to control the robot’s start-up program and stop-up program, and provides some input registers to display the current robot’s state information, including the robot’s current Cartesian position, the robot’s current running state, etc. (please refer to Annex 1: ModbusTCP slave address mapping table). The use process of robot ModbusTCP slave station mainly includes: ①parameter configuration; ②Communication test; ③Programming.

9.18.3.1. ModbusTCP slave communication parameter configuration

Open the WebApp, click “Teaching” and “Program Teaching” in turn to create a new user program “testModbusSlave.lua”.

../_images/202.png

Figure 9.18-40 Create ModbusTCP slave station user program

Click “ModbusTCP Settings” button to open the ModbusTCP function configuration page.

../_images/203.png

Figure 9.18-41 Open ModbusTCP Settings

Click “Slave Settings” in turn, and enter the IP, Port number and Slave station number of the robot slave station, where “IP” is the IP address of the robot slave station, FAIRINO cooperative robot has two network ports, the teaching device and the control box and the IP addresses of the two ports are different. Enter the correct IP address according to the network port where the external device is connected to the robot slave station (it is recommended that you use the network port on the control box).You have to restart robot after change the IP address, port number or slave station number of the robot ModbusTCP slave station,otherwise it won’t take effect.

../_images/204.png

Figure 9.18-42 ModbusTCP slave settings

After the parameters of ModbusTCP slave station are set and the robot is restarted, the external master station equipment can establish a connection with the robot slave station through the set parameters. After the connection is successful, the “Connection status” indicator light on the robot slave station setting page will light up.

../_images/205.png

Figure 9.18-43 slave station connection status indicator light

9.18.3.2. ModbusTCP slave communication test

  1. Digital input (coil)

The robot ModbusTCP slave station provides 128 coil registers, and their register addresses are 100~127.

Note

Please refer to Annex I: ModbusTCP slave station address mapping table.

Aliases can be set for the general registers of robot ModbusTCP slave stations as shown in Figure 52. Modify the name of the robot slave station coil register DI0 to be “A in place” and the name of DI1 to be “B in place”. According to the address mapping table, the Modbus coil addresses of “A in place” and “B in place” are 100 and 101, respectively. Set the robot slave station coil register addresses 100 and 101 to 1 on the external ModbusTCP master station equipment, At this time, two register indicators on the monitoring page of the robot ModbusTCP slave station light up .

../_images/206.png

Figure 9.18-44 ModbusTCP slave station coil state monitoring

  1. Digital output (discrete input)

The robot ModbusTCP slave station provides 128 discrete input registers, and their register addresses are 100~127.

Note

Please refer to Annex 1: ModbusTCP slave station address mapping table for specific definitions.

Similarly, the robot ModbusTCP slave’s discrete input register can also be set with aliases, as shown in Figure 53. Click “Digital Output (Discrete Input)” to modify the name of the robot slave’s discrete input register DO0 as “A Start” and DO1 as “B Start”. According to the address mapping table, the Modbus discrete input addresses of “A Start” and “B Start” are 100 and 101 respectively. Click “A Start” to correspond to the discrete input indicator light, which lights up, and the value of the corresponding register address 100 becomes 1, which can be read from the external ModbusTCP master station equipment.

../_images/207.png

Figure 9.18-45 ModbusTCP slave discrete input control

  1. Analog input (holding register)

The robot provides 64 holding registers of unsigned, signed and float types, with the addresses of AI0~AI63 ranging from 100 to 195.

Note

text Please refer to Annex 1: ModbusTCP slave address mapping table for specific definitions, in which the data range of unsigned register is 0~65535, the data range of signed register is -32768~32767, and the float register is displayed at the big end.

As shown in Figure 53, the names of AI0 and AI1 are changed to “voltage” and “current” respectively, and the addresses of the two registers are found to be 100 and 101 respectively from the ModbusTCP slave address mapping table. Therefore, when the connected master station equipment modifies the register address values of the holding registers 100 and 101, the register address values of “voltage” and “current” on the ModbusTCP slave station monitoring page of the robot are updated and displayed synchronously, and the robot’s analog input is mainly used for reading the external master station equipment values.

../_images/208.png

Figure 9.18-46 ModbusTCP slave analog input monitoring

  1. Analog output (input register)

The robot provides 64 input registers of unsigned, signed and floating-point types, with the addresses of AO0~AO63 ranging from 100 to 195.

Note

text please refer to Annex 1: ModbusTCP slave address mapping table, in which the data range of unsigned register is 0~65535, the data range of signed register is -32768~32767, and the floating-point register is displayed at the big end.

As shown in figure 55, the names of AO0 and AO1 are changed to “position A” and “position B” respectively, and the values of the input registers are 2000 and 1500 respectively. The addresses of the two registers are 100 and 101 respectively from the station address mapping table of ModbusTCP. Therefore, when the connected master station equipment reads the address values of the input registers 100 and 101, the set values can be obtained, and the simulated output of the robot slave station is mainly used for the robot to transfer to the external master station equipment.

../_images/209.png

Figure 9.18-47 Modbus slave station modifies analog input

9.18.3.3. ModbusTCP slave programming

Click “All” and “Communication command” in turn to open the communication command adding page.

../_images/210.png

Figure 9.18-48 Open the communication command add page

Click “Modbus”.

../_images/211.png

Figure 9.18-49 Select Modbus

Click “Modbus_TCP”.

../_images/178.png

Figure 9.18-50 Select Modbus_TCP

Select “slave station” to open the ModbusTCP slave station command adding page (figure 60).

../_images/212.png

Figure 9.18-51 slave command addition

  1. Write a single digital output DO (discrete input)

Select the DO name as “A Start”, the number of registers is 1 and the register value is 0, and click “Write Single Digital Output”. Finally, scroll to the bottom of the page and click the “Apply” button (Figure 62).

../_images/213.png

Figure 9.18-52 Adding Write Single Digital Output command

At this time, the robot program “testModbusSlave.lua” has added an command for the robot Modbus slave station to write a single digital output, switch the robot to the automatic mode, click the start button, and the robot will write the address value of the corresponding digital output named “A Start” as 0.

../_images/214.png

Figure 9.18-53 Write a single digital output LUA program

  1. Write multiple digital outputs DO (discrete input)

Open the ModbusTCP slave command addition page, find the “Digital Output Settings”, select the DO name as “A Start”, the number of registers is 5, and the register values are 1,0,1,0,1, where the number of register values corresponds to the set number of registers, and multiple register values are separated by English commas, and click “Write Digital Output”. Finally, scroll to the bottom of the page and click the “Apply” button (Figure 65).

../_images/215.png

Figure 9.18-54 Configures Writing Multiple Digital Outputs

At this time, the robot program “testModbusSlave.lua” has added an command for the robot Modbus slave station to write multiple digital outputs. Switch the robot to the automatic mode, click the start button, and the robot will start the slave station “A” and write the values of its four discrete input registers as 1, 0, 1, 0 and 1 respectively.

../_images/216.png

Figure 9.18-55 Write multiple digital output LUA programs

  1. Read a single digital output DO (discrete input)

Open the ModbusTCP master station command addition page, find “Digital Output Settings”, the name of DO is “A Start”, the number of registers is 1, and the register value does not need to be filled in. Click “Read Digital Output”. Finally, scroll to the bottom of the page and click the “Apply” button (Figure 68).

../_images/217.png

Figure 9.18-56 Configuring Reading a Single Digital Output

At this time, the robot program “testModbusSlave.lua” has added an command for the robot Modbus to read a single digital output from the station.

../_images/218.png

Figure 9.18-57 Read a single digital output program

Usually, after reading the Modbus register, the read value is stored in a variable, so it is necessary to define a variable to store the read value. As shown in figure 70, click the “switch mode” button “” to switch the robot lua program to the editable state, and write the variable “AStartValue” with added return value before the “ModbusSlaveReadDO” command, and the value read after executing the program will be stored in “AStartValue”.

../_images/219.png

Figure 9.18-58 Reading a single digital output into a variable

The register value of coil type is only 0 and 1, so different operations can be carried out by judging the different register values in robot programs. As shown in Figure 71, click the “Switch Mode” button “” to switch the robot teaching program to the non-editable mode, and add two joint motion commands to move to two different points “P1” and “P2” respectively.

../_images/220.png

Figure 9.18-59 Add motion commands of different points.

As shown in Figure 72, the program is switched to the editable mode again, and the judgment condition of the digital output value “AStartValue” is written. When the value of “AStartValue” is 1, the robot moves to the point “P1”, otherwise the robot moves to the point “P2”.

../_images/221.png

Figure 9.18-60 Move to different points according to different digital output values

Finally, switch the robot program to non-editable mode, switch the robot to automatic mode, and start the running program on the premise of confirming safety. As shown in figure 73, the second line of the program sets the DO value of the digital output named “A Start” to 1, so the robot will move to the “P1” point after executing the program.

../_images/222.png

Figure 9.18-61 Read the register value of a single coil and move it

  1. Read multiple digital outputs DO (discrete input)

As shown in Figure 74, open the ModbusTCP master station command addition page, find the “Digital Output Settings”, select the DO name as “A Start”, the number of registers is 2, and the register value does not need to be filled in, and click “Read Digital Output”. Finally, scroll to the bottom of the page and click the “Apply” button (Figure 75).

../_images/223.png

Figure 9.18-62 Configures Reading Multiple Digital Outputs

As shown in Figure 76, at this time, the robot program “testModbusSlave.lua” has added an command for the robot Modbus to read multiple digital outputs from the station.

../_images/224.png

Figure 9.18-63 Reading multiple digital output programs

As shown in figure 77, click the “switch mode” button “” to switch the robot lua program to the editable state. Since the number of readings is two, it is necessary to write and add two return values “value1,value2” before the “ModbusSlaveReadDO” command, and the values of the two digital output registers read after executing the program will be stored in the above two variables respectively. Similarly, you can judge “value1” and “value2”.

../_images/225.png

Figure 9.18-64 Reading Multiple Digital Outputs and Storing Variables

  1. Read DIgital input DI (coil)

As shown in Figure 78, open the ModbusTCP slave command addition page, find the “Digital Input Settings”, select the DI name as “A in place” and the number of registers as 2, and click “Read Digital Input”. Finally, scroll to the bottom of the page and click the “Apply” button (Figure 79).

../_images/226.png

Figure 9.18-65 Configuring Read Digital Input

As shown in Figure 80, at this time, the robot program “testModbusSlave.lua” has added an command for the robot Modbus to read digital input from the station.

../_images/227.png

Figure 9.18-66 Reading digital input program commands

As shown in Figure 81, click the “switch mode” button “” to switch the robot lua program to an editable state, and write the return value variable “AState,BState” before the “ModbusSlaveReadDI” command. The two digital input values read after executing the program will be stored in the variables “AState” and “BState” respectively, and you can control the robot to do different operations by judging the variable values.

../_images/228.png

Figure 9.18-67 Reading digital input program

  1. Read and write operations of analog output AO (input register) and analog input AI (hold register)

The reading and writing operations of analog output (input register) and analog input (holding register) are basically the same as those of digital output (discrete input) and digital input (coil), but the difference is that the data range of the latter is only 0 or 1, while the data range of the former is larger, so the specific operations can refer to the programming of digital output and digital input, and only the reading and writing operations of analog input (Figure 82) and analog output (Figure 83) are shown here.

../_images/229.png

Figure 9.18-68 Reading Analog Input

../_images/230.png

Figure 9.18-69 Reading and writing analog output

  1. Waiting for digital input

As shown in Figure 84, open the ModbusTCP slave command addition page, find “Waiting for digital input settings”, select the “A in place” register with DI name as configuration, the waiting status is “True”, and the timeout time is 5000 ms. Click “Add” button, and finally click “Apply” button.

../_images/231.png

Figure 9.18-70 Add the command of waiting for digital input

As shown in Figure 85, at this time, the robot program “testModbusSlave.lua” has added an command that the robot Modbus slave station waits for digital input. After starting the program, the robot will wait for the value of the “A in place” coil register of the slave station to become true, that is, the value 1. Since the set timeout is 5s, when the “A in place” signal is still 0 after the robot waits for 5s, the robot program will report a timeout error and the program will automatically stop running.

../_images/232.png

Figure 9.18-71 Waiting for Digital Input Program

  1. Waiting for analog input

As shown in figure 86, open the ModbusTCP slave command addition page, and find the voltage register with the AI name selected for “Waiting for Analog Input Settings”. The waiting state is “>”, the register value is 255, and the timeout time is 5000 ms.. Click “Add” button, and finally click “Apply” button.

../_images/233.png

Figure 9.18-72 Add an command to wait for analog input

As shown in Figure 87, at this time, the robot program “testModbusSlave.lua” has added an command that the robot Modbus slave station waits for the analog input value. After starting the program, the robot will wait for the slave station’s “voltage” register value to be greater than 255. Since the set timeout time is 5s, when the robot waits for 5s and the “voltage” signal is still less than 255, the robot program will report a timeout error and the program will automatically stop running.

../_images/234.png

Figure 9.18-73 Waiting for Analog Input Register Program

Open the ModbusTCP Slave command addition page, find the “Wait for Analog Input Setting” (i.e., wait for AI input register setting). Select the AI name as the configured “Liquid Level” register, set the wait condition to “=”, the register value to 255, and the timeout to 5000ms. Click the “Add” button, and finally click the “Apply” button.

../_images/495.png

Figure 9.18-73-2 Add Wait for Analog Input

At this point, a Modbus Slave command to wait for the AI input register value has been added to the robot program “test.lua”. After starting the program, the robot will continuously wait for the “Liquid Level” register value to equal 255. Since the timeout is set to 5s, if the “Liquid Level” signal still does not equal 255 after the robot waits for 5 seconds, the robot program will report a timeout error and automatically stop running.

9.18.3.4. ModbusTCP slave robot state feedback and control

The ModbusTCP slave input register addresses 310~473 of the cooperative robot are used to feed back the real-time status of the robot (see Annex 1: ModbusTCP slave address mapping table). You only need to read the value of the corresponding register with the master station equipment to obtain the corresponding real-time status data of the robot.

The coil register addresses 300~599 of ModbusTCP slave station of the cooperative robot are used for the master station equipment to control the robot (see Annex 1: ModbusTCP slave address mapping table). Taking coil address 502 as an example, this address function indicates “startup program”.

When the robot is in automatic mode, the master station equipment sets the value of address 502 from 0 to 1, the robot automatically starts to run the currently configured program; Take the coil address 300 as an example. It is used to control the output of the robot control box DO0. When the external master station sets the coil address 300 from 0 to 1, the automatic output of the control box DO0 is valid. Similarly, when the external master station sets the coil address 300 from 1 to 0, the output of the control box DO0 is invalid. As shown in Figure 88, click “Function Digital Input (Coil)” on the ModbusTCP slave station setting page to monitor all current function digital inputs.

../_images/235.png

Figure 9.18-74 Digital Input of Robot Slave Station Function

../_images/434.png

Figure 9.18-74 Modbus TCP Slave station address mapping table

Appendix 1: Modbus TCP Slave station address mapping table

9.19. Robot Backgrounder Function

9.19.1. Robot Backgrounder Function

The robot background program is a control program used to process the logical relationship of signals in the process of running the robot in the foreground motion program, and the background is also running, and the two are independent of each other in the operation relationship.

The background program can monitor the operating status of the foreground and at the same time send control signals to the foreground. The background program can also be connected with external devices through I/O communication to monitor and control the operation of robot peripheral equipment. Unlike the foreground teach-in, the background logic program can run commands, which cannot control any axis of motion. Therefore, it cannot be programmed with any robot axis motion commands. Only the logic control function and I/O communication function are retained.

When using a background program, the program scans in a loop from start to finish. The running cycle is 1 millisecond, and a delay function can be added to the background program to control the running cycle. During the execution of the background program, it is not affected by emergency stop, pause, or alarm.

Note

Run up to 8 background programs at the same time.

A maximum of 8 programs can be executed at the same time as background logic, and an error alarm will be sent when the number of programs exceeds the maximum value.

When the power is cut off, the background logic program will be automatically loaded and run according to the set state the next time the power is turned on.

9.19.1.1. Save the robot background program

Backgrounder creation, editing, and saving can only be used in the Backgrounder interface.

Step1:Open the robot background program interface. Open the teaching page, click “Program”, and then click “Coding”. Select the command background program in the upper left corner to enter the background program interface.

Note

The background program only contains logic judgment, assignment instructions, front-end control instructions, I/O interface instructions and Modbus communication instructions.

../_images/253.png

Figure 9.19-1 The robot background program interface

Step2:In manual mode, open the background teach program file. Click “New” to create a new teaching program file, edit the program, and click “Save” to save the file.

Note

The running cycle of the background program is 1 millisecond, and the provided delay function can be used in the program, as shown in the fourth line of the program in the following figure, to increase the delay of 1 second to control the running cycle.

../_images/254.png

Figure 9.19-2 Save the robot background program

9.19.1.2. Robot background program management

Successfully saved backgrounders can be created, paused, resumed, and deleted in the backgrounder management interface. The backgrounder management interface allows you to intuitively see the running status of all created backgrounders. Green is running, and red is paused.

Step1:Create a background program. Click the Background Program Management button, select the saved background program from the drop-down box, and click Start Run to run the corresponding background program.

../_images/255.png

Figure 9.19-3 Start running the robot background program

Step2:Resume and pause the background program. In the background program management page, click Resume and Pause on the monitor to resume and pause the corresponding background program.Click Delete on the monitor program to delete the corresponding background program.

../_images/256.png

Figure 9.19-4 Pause、resume、delete the background program

9.19.2. Use of the robot user variables

Note

The new user variable function is applicable to the data interaction between the robot background program and the foreground program, or between different background programs.

9.19.2.1. Robot user variable management

Before using user variables, you can rename them to your liking. Open the teach-in page, click “Program”, “Coding”, and “user variable management”, which can be used in both the foreground program and the background program. Click on the variable name to change the variable name directly.

../_images/257.png

Figure 9.19-5 Robot user variable management

9.19.2.2. Robot user variable use

When user variables are used in foreground and background programs, only the user variable read/write interface can be used.

Step1:In manual mode, open the teach-in program file. Open the teaching page, click “Program”, click “Coding”, and click “New” to create a new teaching program file.

../_images/258.png

Figure 9.19-6 Create a new teach-in program file

Step2:Use the user variable read interface. Click the “Variable” command, select “User Variable”, click the Get Variable Value drop-down box, select the user variable to be read, and click the “Add” and “Apply” buttons to write the user variable reading interface program.

../_images/259.png

Figure 9.19-7 Use the user variable read interface

Step3:Use user variables to write interfaces. Click the “Variable” command, select “User Variable”, click the Set Variable Value drop-down box, select the user variable to be set, and fill in the corresponding set value, which supports both constant and variable value. Click the Add and Apply buttons to write user variables and write interface programs.

../_images/260.png

Figure 9.19-8 Use the user variable write interface

9.20. XY horizontal constant

9.20.1. Overview

The principle of lateral constant force grinding in the XY direction is as follows: Lateral constant force grinding refers to applying a grinding tool (such as a grinding wheel, grinding disc, etc.) with a constant force on a specified workpiece surface, and controlling the movement of the tool along the XY direction to maintain a constant grinding force at the contact point.

9.20.2. Operation process of lateral constant force grinding function in XY direction

To perform constant force grinding using a force sensor, it is necessary to install a grinding tool under the force sensor and configure the tool coordinate system. Click on the “Initial” -> “Base” -> “Coordinate” -> “TCP” button in sequence to enter the “Tool coordinate system settings” interface. Select the coordinate system to be set in the “Coordinate system name” (taking toolcoord 0 coordinate system as an example), and set it according to the size of the end tool.

../_images/246.png

Figure 9.20-1 Set tool coordinate system

Force control reference coordinate system setting. In the web interface, click on “FT” -> “Reference coord.”, select “Custom coordinates”, and set each parameter to “0”. When the force sensor is working, different reference coordinate systems will affect the magnitude of the external force obtained by the sensor.

../_images/261.png

Figure 9.20-2 Set reference coordinate

Fix the flat plate to be polished in the robot workspace, and the plate should not shake. Place the end of the tool approximately perpendicular to the polishing plate and teach the starting and ending points.

../_images/262.png

Figure 9.20-3 Polishing layout diagram

Click on the “Program” -> “Coding” -> “F/T” button in sequence, and add the “FT_Control” instruction. The “FT_Control” command is a force controlled motion command that allows the robot to move around the set force.

../_images/263.png

Figure 9.20-4 Add FT_Control command

../_images/264.png

Figure 9.20-5 Example of FT_Control polishing instruction

The specific function of parameters:

Coordinate system name:The name corresponding to setting the sensor coordinate system;

Check the direction of force detection and set the detection threshold:Select the direction of the control force. In horizontal polishing, check Fx and Fy and set the corresponding expected constant force;

PID parameters:Set the PID proportional coefficients for force and torque, generally setting the F_P_gain to 0.001;

Maximum adjustment distance:corresponding to the maximum movement distance in the X, Y, and Z directions;

Maximum adjustment angle:corresponding to the maximum rotation angle of RX, RY, RZ;

Grinding disc radius:determined by the actual radius of the end grinding tool.

9.21. Automatic Singularity Avoidance Trajectory

9.21.1. Overview

When the robot encounters a singular range that cannot be passed by the robot in the LIN and ARC command tracks, the robot will report an error or prompt the next digit to be strange or a singular warning appears.

If you want to be able to reach the next waypoint that will pass through the singular range, you can use this function to avoid the singularity point through joint space or Cartesian space to reach the next target pose.

../_images/265.png

Figure 9.21-1 A simple schematic diagram of a robot’s singularity

The above figure is a schematic diagram of the robot singularity, the robot singularity includes three kinds of singularity: shoulder, elbow and wrist, and A is the 5 joint center WCP (Wrist Center Point), which is used to judge the shoulder singularity; B is the singular range of the shoulder, which resembles a cylinder, and its radius is the length of the robot DH parameter d4, and the robot enters the singular state when the WCP enters the cylinder B; C is the elbow singularity boundary of the robot, and the robot is in the elbow singularity state when J3=0 or 180°; D is the internal space, and it is in the wrist singular state when J5=0 or 180° at any position in the internal space.

Note

It should be noted that singularity is a motion characteristic determined by the physical structure of the robot, which should be avoided as much as possible during actual operation, and it will lead to changes in the terminal posture and speed and even configuration configuration when it is avoided by algorithms, and it is necessary to consider whether the side effects of avoidance affect the requirements before making a choice.

9.21.2. The trajectory automatically avoids the operation process of the singularity function

In the new program, click Add Robot LIN/ARC type motion command.

../_images/266.png

Figure 9.21-2 Add LIN/ARC LUA command

2.Click the “LIN” command, select the waypoint of the robot singularity, and click the “Singularity Avoidance” button in the “Motion Protection” sub-option of the command parameter configuration interface.

../_images/267.png

Figure 9.21-3 Turn on singularity avoidance switch

3.Singularity Avoidance parameters include Guard Mode, Shoulder Singularity, Elbow Singularity, and Wrist Singularity. Among them, the “protection mode” is divided into “joint mode” and “Cartesian mode”, which means that the robot can cross the singular from the joint space or bypass the singular from the Cartesian space; The parameters of the “Singular Adjustment” specify the maximum deviation between the range of the determination of singularity and the singularity avoidance, which is mm for shoulder and elbow singularity units, and ° for wrist singular units.

Note

The joint space will select the nearest trajectory between the joints, so there will be no limit situation, and the joint limit may occur when the Cartesian space is avoided, so you need to pay attention to and adjust it during teaching.

After selecting and setting the singularity avoidance parameters, you can click the “Add” button to add the command, and then click “Apply” to add the LUA command to the program.

../_images/268.png

Figure 9.21-4 Configure singularity avoidance parameters and add the lua command

The teach-in completes a typical LIN singular avoidance movement lua procedure as follows:

../_images/269.png

Figure 9.21-5 lua program that contains singularity avoidance instructions

The effect of achieving avoidance is as follows, and the red is the trajectory line at the end of the robot:

../_images/270.png ../_images/271.png

Figure 9.21-6 Example of a shoulder singular avoidance trajectory(top: Cartesian space, bottom: joint space)

../_images/272.png ../_images/273.png

Figure 9.21-7 Example of an elbow singular avoidance trajectory(top: Cartesian space, bottom: joint space)

../_images/274.png

Figure 9.21-8 Example of a wrist singular avoidance trajectory (joint space)

6.If the start and end points of the movement are within the set singular range, when more than one singularity occurs during the movement, or even when two or more singular situations occur at the same time, the interface will display a pop-up window of “[Warning] Singular Pose” to indicate that the current singular situation cannot be avoided.

../_images/275.png

Figure 9.21-9 The current singular situation cannot be avoided

9.22. Singularity crossing function in automatic mode

9.22.1. Overview

When the robot executes LIN or ARC commands and passes through a singularity, its speed may fluctuate drastically, leading to unstable motion control and even potential damage to the equipment. By utilizing the singularity crossing function, the robot can smoothly pass through singularities. This manual takes the example of the LIN command passing through a wrist singularity to illustrate how to use the singularity crossing function in automatic mode.

9.22.2. Operation Flow

  1. Teach the robot to execute the LIN command with two motion control points (named wristlin1 and wristlin2 in this manual).

  2. Click the “Program” button, then click “Coding”, select the “PTP” command under “Motion command”, and add the first motion point.

../_images/285.png

Figure 9.22-1 Add the first motion point

  1. Select the “LIN” command under “Motion command”, and add the second motion point. In the “Motion protection” section, select “Singularity Crossing,” and set the adjustment ranges for shoulder singularity, elbow singularity, and wrist singularity.

../_images/286.png

Figure 9.22-2 Set the singularity crossing parameters

  1. Generate and run the Lua program. The typical LIN command program for singularity crossing in automatic mode.

../_images/287.png

Figure 9.22-3 Typical singularities crossing LIN instructions

  1. Observe the robot’s motion results, and adjust the robot’s movement speed and singularity settings range to achieve different motion accuracy and impact.

9.22.3. Precision Impact Table

  1. Wrist singularity is the most easily triggered singularity type for the robot. A table comparing the precision and impact of wrist singularity for LIN and ARC commands has been compiled. The comparison table for LIN and ARC commands are shown below, (〇 indicates that a collision warning was triggered).

Table 9.22-3-1 Error of wrist singularity LIN command (Unit: mm)

Range / Velocity

2

20

40

60

80

100

2 mm

0.19

0.20

0.20

0.21

4 mm

0.14

0.14

0.14

0.14

0.14

0.14

6 mm

0.40

0.40

0.41

0.41

0.42

0.42

8 mm

0.82

0.83

0.83

0.84

0.83

0.84

10 mm

1.38

1.38

1.39

1.39

1.39

1.41

Table 9.22-3-2 Linear jerk of wrist singularity LIN command (Unit: m/s3)

Range / Velocity

2

20

40

60

80

100

2 mm

0.605

12.040

11.370

2743.000

4 mm

0.916

34.620

110.900

241.300

303.900

400.700

6 mm

0.906

59.700

139.600

343.700

445.600

582.900

8 mm

1.073

67.480

199.600

438.300

553.400

623.900

10 mm

1.013

69.490

195.800

556.600

649.300

953.300

Table 9.22-3-3 Angular jerk of wrist singularity LIN command (Unit: °/s³)

Range / Velocity

2

20

40

60

80

100

2 mm

1122

25140

24780

54890

4 mm

305

9035

26030

39330

60510

80330

6 mm

219

8161

19450

84700

109300

143400

8 mm

478

6651

19780

121600

150500

162100

10 mm

281

5296

14470

161600

177300

256000

Table 9.22-3-4 Error of wrist singularity ARC command (Unit: mm)

Range / Velocity

2

20

40

60

80

100

2 mm

1.06

1.06

1.05

1.05

4 mm

1.58

1.59

1.60

1.62

6 mm

3.31

3.34

3.35

3.32

3.39

3.33

8 mm

5.81

5.83

5.87

5.87

5.87

5.96

10 mm

9.06

9.09

9.12

9.17

9.17

9.22

Table 9.22-3-5 Linear jerk of wrist singularity ARC command (Unit: m/s3)

Range / Velocity

2

20

40

60

80

100

2 mm

13.970

643.000

2230.000

3408.000

4 mm

0.635

24.850

42.480

76.990

6 mm

3.000

19.960

45.350

57.120

77.050

59.800

8 mm

1.494

27.830

90.290

124.200

148.400

168.000

10 mm

0.460

31.870

112.600

211.000

229.300

117.500

Table 9.22-3-6 Angular jerk of wrist singularity ARC command (Unit: °/s³)

Range / Velocity

2

20

40

60

80

100

2 mm

3378

85380

228600

351900

4 mm

1098

31360

71460

104800

6 mm

390

15770

43650

79330

93930

124200

8 mm

315

10270

28770

57000

75840

94050

10 mm

504

6108

21470

34920

47280

97160

  1. Since shoulder singularity and elbow singularity correspond to the robot’s minimum and maximum working boundaries, respectively, precision cannot be used as an evaluation metric. Therefore, an impact comparison table for shoulder singularity is compiled, as shown in Tab, and an impact comparison table for elbow singularity is compiled, as shown below (where 〇 indicates that a collision warning was triggered).

Table 9.22-3-7 Linear jerk of shoulder singularity (Unit: m/s3)

Range / Velocity

2

20

40

60

80

100

40 mm

1.166

99.730

253.200

273.500

70 mm

1.047

92.440

328.900

634.500

878.400

1499.000

100 mm

1.060

90.250

273.900

506.600

926.300

1555.000

Table 9.22-3-8 Angular jerk of shoulder singularity (Unit: °/s³)

Range / Velocity

2

20

40

60

80

100

40 mm

396

89.83

824

348

70 mm

428

121

681

167

1783

35690

100 mm

440

151

473

246

1495

39280

Table 9.22-3-9 Linear jerk of elbow singularity (Unit: m/s3)

Range / Velocity

2

20

40

60

80

100

40 mm

0.905

14.430

52.080

87.380

129.400

657.000

70 mm

1.144

24.320

79.580

270.300

793.300

1478.000

100 mm

1.852

27.930

112.700

328.100

583.000

758.600

Table 9.22-3-10 Angular jerk of elbow singularity (Unit: °/s³)

Range / Velocity

2

20

40

60

80

100

40 mm

347

128

148

142

63

38050

70 mm

424

132

141

21780

56190

95610

100 mm

46

1443

6194

19940

35170

46770

9.23. Real-time forward trajectory planning function

9.23.1. Overview

Real-time forward-looking trajectory planning is based on current and future path information, dynamically adjusting the robot’s motion parameters such as speed and acceleration to ensure smoothness, continuity and accuracy of motion. By predicting the robot’s future position and posture, forward-looking control can respond before the key points of the path, thereby avoiding unstable motion or trajectory errors due to sudden changes in speed and acceleration.

9.23.2. Operation process

Step1: Prepare a trajectory point file in “txt” format, in which each trajectory point is represented by a Cartesian pose.

Step2: Click the “Teaching Program”->”Programming” button in sequence, select the “Trajectory Forward” command in “Motion Command”, and import and delete the trajectory file in “Command Configuration”.

../_images/288.png

Figure 9.23-1 Import and delete trajectory files

Step3: Select the trajectory file to run and add the “Trajectory Preload” command:

First, choose the fitting method for trajectory points in “Curve Fitting Method”, including “Linear Connection”, “Linear Fitting”, “B-spline Curve”, “Polynomial Optimization Method”, etc. When selecting “Linear Fitting”, additional error limits need to be set, which is not required for other methods.

Then set the smoothing method and smoothing precision. Finally, configure the maximum velocity, maximum acceleration and maximum jerk during operation. The “Uniform Motion” option can be enabled for constant velocity lookahead, which will make the robot perform lookahead at constant speed when activated.

../_images/289.png

Figure 9.23-2 Setting “Linear Fitting” Parameters for Trajectory Preloading

../_images/292.png

Figure 9.23-3 Setting Trajectory Preloading Parameters

Step4: Add the “Trajectory Motion” command and generate Lua program. The imported trajectory file can be processed with real-time lookahead trajectory planning by running the Lua program. A typical real-time lookahead trajectory planning program is shown below.

../_images/290.png

Figure 9.23-4 Typical Program for Real-time Lookahead Trajectory Planning (B-spline Curve)

Step 5: For the “LoadTrajectory” command line in the lua program, click the edit button to modify the setting parameters to achieve different trajectory planning effects.

../_images/291.png

Figure 9.23-5 Modify the setting parameters

9.24. Swing amplitude monotonous gradual arc tracking function

Swinging motion can realize two swinging amplitude switching modes: “sudden change” and “gradual change”.

The “sudden change” mode refers to the mode of directly switching the swinging parameters of the previous section with the swinging parameters of the next section. It can be realized by setting two adjacent swinging motions with different parameters, or by issuing a new swinging number in real time during the swinging motion (see the manual section corresponding to the function for details, which will not be repeated here).

The “gradual change” mode means that in the current swinging motion, the swinging amplitude set at the beginning gradually changes to the swinging amplitude set at the end.

The swinging parameter gradual switching mode only supports the process of linear swinging.

9.24.1. Introduction

The swinging motion trajectory of monotonic gradual swinging amplitude is shown in the figure below.

../_images/293.png

Among them, the blue line is the swing direction, a is the swing amplitude of the starting point, and b is the swing amplitude of the ending point. The swing amplitude gradually changes during the movement.

Note

Please note that currently only the starting point and the end point are of the same type, the swing amplitude is different (from a to b), and the other parameters are consistent. It is recommended to check the swing parameters before executing the swing.

The operation process of setting a swing amplitude gradual swing is as follows:

Step 1: Click “Teaching Program”, “Programming”, select and click the “Swing” button under “Motion Instructions” to enter the swing instruction configuration page.

../_images/294.png

Figure 9.24-1 Click the swing function button

Step 2: Select the swing parameter number at the start of the swing in the command editor, click “Start Swing” and then click the “Add” button.

../_images/295.png

Figure 9.24-2 Add starting swing parameters

Step 3: Select the target number of the swing gradient, click “Swing gradient start”, and click the “Add” button.

../_images/296.png

Figure 9.24-3 Add gradual swing parameters

Step 4: After adding the corresponding linear motion, click “Swing Gradient End” and click Add, then click “Stop Swing” and add, complete the setting of a gradual swing motion, and click “Apply” to add it to the LUA program.

../_images/297.png

Figure 9.24-4 Implement a complete swing amplitude gradient motion LUA instruction

9.25. Offset arc tracking function

During the arc tracking welding process, the robot defaults to adjusting the welding gun swing center to track the workpiece groove center according to the current information to keep consistent, but some process requirements require that the welding gun swing center has a certain offset relative to the workpiece groove center.

../_images/298.png

Figure 9.25-1 Typical scenarios of bias arc tracking

Typical scenarios of the bias arc tracking function include: a. welding workpiece (welding groove is right angle or acute angle), b. welding gun, e. groove center line. The arc tracking function realizes the following for the welding groove: c. up and down (depth) direction tracking and d. left and right (center) direction tracking, f. left and right direction tracking offset distance.

To realize bias arc tracking, two methods of setting left and right offsets can be selected, namely “sampling” and “percentage” adjustment methods.

9.25.1. Sampling bias arc tracking

The sampling method is to collect the left and right current values ​​during the swinging within a certain cycle as a reference after the swing welding arc is started, and compare the sampling current with the reference current in the subsequent welding process to obtain the tracking direction.

The sampling method requires teaching the swing welding starting position to the required offset, the offset shall not be greater than the swing amplitude, and the weld needs to cover the splicing groove.

The sampling bias instruction setting process is as follows:

../_images/299.png

Figure 9.25-2 Click the arc tracking command button

Step 1: Click “Teaching Program”, “Programming”, select and click the “Arc Tracking” button under “Welding Command” to enter the arc tracking command configuration page.

../_images/300.png

Figure 9.25-3 Sampling bias arc tracking configuration page

Step 2: Bias arc tracking acts on left and right compensation. Click the “Left and Right Compensation” subpage, pull down and select “Sampling” in the bias mode, set the sampling start period (the sampling start period must be less than the left and right compensation start time), select “Start” for the instruction type, and click the Add button to generate the LUA instruction.

../_images/301.png

Figure 9.25-4 Add sampling bias arc tracking end instruction

Step 3: After adding the swing motion instruction, click to select the arc tracking instruction type “End”, and click Add to generate the corresponding LUA instruction.

9.25.2. Percentage bias arc tracking

The percentage bias is to gain the input sampling current by percentage during the arc tracking process, so that the current of the left and right swing cycles will deviate, and the robot will automatically compensate for the deviation signal.

Note

It should be noted that the smaller the swing amplitude and the larger the groove angle, the smaller the deviation of the left and right currents, and the smaller the adjustment percentage. It is recommended to debug with every 1% as the adjustment interval.

The percentage bias instruction setting process is as follows:

../_images/299.png

Figure 9.25-5 Click the arc tracking command button

Step 1: Click “Teaching Program”, “Programming”, select and click the “Arc Tracking” button under “Welding Command” to enter the arc tracking command configuration page.

../_images/302.png

Figure 9.25-6 Sampling bias arc tracking configuration page

Step 2: Bias arc tracking acts on left and right compensation. Click the “Left and Right Compensation” subpage, pull down and select “Percent” in the bias mode, set the percentage value (positive value compensates the current gain of the first half cycle and the direction of the second half cycle, negative value is the opposite), select “Start” for the instruction type, and click the Add button to generate the LUA instruction.

../_images/303.png

Figure 9.25-7 Add percentage bias arc tracking end instruction

Step 3: After adding the swing motion instruction, click to select the arc tracking instruction type “End”, and click Add to generate the corresponding LUA instruction.

The typical LUA program structure of a bias tracking is as follows:

../_images/304.png

Figure 9.25-8 A typical bias arc tracking LUA program

9.26. Custom collision detection threshold function

9.26.1. Overview

The custom collision detection threshold function is a perfection of the current manual setting of the collision level function. If the current collision level setting does not meet the usage scenario, the user can set a custom collision detection threshold according to the actual situation. The collision detection threshold is divided into joint detection threshold and TCP detection threshold.

9.26.2. Function setting description

Step1: Click “Teaching Program”, select “Programming”, and open the corresponding interface.

Step2: Click the “New” button above, enter “example”, select “empty.lua”, and create a new lua script, as shown in Figure 1.

../_images/305.png

Figure 9.26-1 Create a new lua script

9.26.2.1. Joint detection threshold function setting instructions

9.26.2.1.1. Parameter setting instructions

Step1: In the control command interface, select the “collision detection” function, as shown in Figure 2. Click “collision detection on”, and select “joint only” under the detection status bar. According to actual needs, modify the input values ​​of J1-J6, the value range is, the unit is NM. In this mode, modifying the TCP threshold in the X-RZ direction does not take effect. According to actual needs, select “non-blocking” or “blocking” for blocking. Click the Add button to complete the opening instruction addition.

Step2: Click “collision detection off”, click the Add button, and complete the closing instruction addition. The program preview interface is shown in Figure 3, click the “Apply” button to complete the function addition.

Note

The custom collision detection threshold function is a set of instructions, which needs to be closed in time after opening.

Step3: In the collision detection function, add the corresponding motion instructions, as shown in Figure 4.

../_images/306.png

Figure 9.26-2 Joint detection threshold setting interface

../_images/307.png

Figure 9.26-3 Program preview interface

../_images/308.png

Figure 9.26-4 lua script program example interface

9.26.2.2. TCP detection threshold function setting instructions

9.26.2.2.1. Parameter setting instructions

Step1: In the control command interface, select the “collision detection” function, as shown in Figure 5. Click “collision detection on”, and select “TCP only” under the detection status bar. According to actual needs, modify the input value of the X-RZ direction, the value range is, and the unit is N. In this mode, modifying the joint threshold of J1-J6 does not take effect. According to actual needs, select “non-blocking” or “blocking” for blocking. Click the Add button to complete the opening instruction addition.

Step2: Click “collision detection off”, click the Add button, and complete the closing instruction addition. The program preview interface is shown in Figure 6, click the “Apply” button to complete the function addition.

Note

The custom collision detection threshold function is a set of instructions, which needs to be closed in time after opening.

../_images/309.png

Figure 9.26-5 TCP detection threshold setting interface

../_images/310.png

Figure 9.26-6 Program preview interface

Step 3: Add corresponding motion instructions in the collision detection function, as shown in Figure 7.

../_images/311.png

Figure 9.26-7 lua script program example interface

9.26.2.3. Joint and TCP detection threshold function setting instructions

9.26.2.3.1. Parameter setting instructions

Step 1: In the control instruction interface, select the “collision detection” function, as shown in Figure 8. Click “collision detection on”, and select “joint and TCP” under the detection status bar. According to actual needs, modify the input values ​​of J1-J6 and X-RZ directions. The value range of J1-J6 is, the unit is NM; the input value of X-RZ direction is, the unit is N. According to actual needs, select “non-blocking” or “blocking” for blocking. Click the Add button to complete the instruction addition.

../_images/312.png

Figure 9.26-8 Joint and TCP detection threshold setting interface

Step2: Click “Close Collision Detection”, click the Add button, and the closing command is added. The program preview interface is shown in Figure 9. Click the “Apply” button to complete the function addition.

Note

The custom collision detection threshold function is a set of instructions, which needs to be closed in time after opening.

../_images/313.png

Figure 9.26-9 Program preview interface

Step 3: Add corresponding motion instructions in the collision detection function, as shown in Figure 10.

../_images/314.png

Figure 9.26-10 lua script program example interface

9.27. T-Shape Velocity Characteristic Optimization + Blending Smoothing Function

9.27.1. Overview

Blending between two trajectory segments avoids frequent start-stop issues caused by complete stops, thereby improving robot motion efficiency. This function primarily performs blending between PTP, LIN, ARC, and CIRCLE instructions, achievable in two ways: using Lua instruction mode or motion configuration switch mode.

9.27.2. Operation Procedures

9.27.2.1. PTP-PTP Blending

9.27.2.1.1. Using Lua Instruction Mode

Step 1: Select teaching points for PTP-PTP function execution. This manual uses “A0” to “A5” as teaching point names.

Step 2: Click “Teach Program” → “Program Programming” button, select “Point-to-Point” in “Motion Instructions”, choose teaching points in “Instruction Editing”, set debug speed, select “Acceleration Smooth Mode” for motion protection, and configure “Smooth Transition” parameter at points requiring smoothing.

../_images/315.png

Figure 9.27-1 Blending Instruction Settings for Accelerated Smooth PTP Instructions

Step 3: Add multiple PTP instructions, generate and run a Lua program to implement PTP-PTP blending. This mode uses optimized T-shape velocity motion only for instructions between AccSmoothStart() and AccSmoothEnd(), with original T-shape velocity for others.

../_images/316.png

Figure 9.27-2 Typical PTP-PTP Blending Program in Lua Instruction Mode

9.27.2.1.2. Using Motion Configuration Switch Mode

Step 1: Click “Initial Settings” → “Safety” → “Motion Configuration” button to enable the “Acceleration Smooth Mode” switch.

../_images/317.png

Figure 9.27-3 Acceleration Smooth Mode Configuration Switch Settings

Step 2: Select teaching points for PTP-PTP function execution, using “A0” to “A5” as names.

Step 3: Click “Teach Program” → “Program Programming” button, select “Point-to-Point” in “Motion Instructions”, choose teaching points, set debug speed, select “None” for motion protection, and configure “Smooth Transition” parameter at points requiring smoothing.

../_images/318.png

Figure 9.27-4 Blending Instruction Settings for Conventional PTP Instructions

Step 4: Add multiple PTP instructions, generate and run a Lua program to implement PTP-PTP blending. The typical program mirrors conventional PTP-PTP programs, applying optimized T-shape velocity motion to all instructions.

../_images/319.png

Figure 9.27-5 Typical PTP-PTP Blending Program Using Configuration Switch

9.27.2.2. PTP-LIN Blending

9.27.2.2.1. Using Lua Instruction Mode

Step 1: Select teaching points for PTP-LIN function execution, using “A0” to “A5” as names.

Step 2: Click “Teach Program” → “Program Programming” button, select “Point-to-Point” in “Motion Instructions”, choose teaching points, set debug speed, select “Acceleration Smooth Mode”, and configure “Smooth Transition” parameter.

../_images/315.png

Figure 9.27-6 Blending Instruction Settings for Accelerated Smooth PTP Instructions

Step 3: Add multiple PTP and LIN instructions, generate Lua program to implement PTP-LIN blending. Only instructions between AccSmoothStart() and AccSmoothEnd() use optimized T-shape velocity.

../_images/415.png

Figure 9.27-7 Typical PTP-LIN Blending Program in Lua Mode

9.27.2.2.2. Using Motion Configuration Switch Mode

Step 1: Enable “Acceleration Smooth Mode” in “Initial Settings” → “Safety” → “Motion Configuration”.

../_images/317.png

Figure 9.27-8 Acceleration Smooth Mode Switch Configuration

Step 2: Select teaching points for PTP-LIN, using “A0” to “A5”.

Step 3: Choose “Point-to-Point” instruction, set debug speed, select “None” for motion protection, configure “Smooth Transition”.

../_images/318.png

Figure 9.27-9 Blending Settings for Conventional PTP Instructions

Step 4: Add PTP and LIN instructions, run Lua program. All instructions use optimized T-shape velocity.

../_images/397.png

Figure 9.27-10 Typical PTP-LIN Blending Program via Configuration Switch

9.27.2.3. PTP-ARC Blending

9.27.2.3.1. Using Lua Instruction Mode

Step 1: Select teaching points “A0” to “A8” for PTP-ARC blending.

Step 2: Insert “Point-to-Point” instruction, set “Acceleration Smooth Mode” and “Smooth Transition”.

../_images/315.png

Figure 9.27-11 Blending Settings for Accelerated Smooth PTP

Step 3: Add PTP and ARC instructions. Only AccSmoothStart/End-enclosed instructions use optimized velocity.

../_images/398.png

Figure 9.27-12 Typical PTP-ARC Blending Program in Lua Mode

9.27.2.3.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode in motion configuration.

../_images/317.png

Figure 9.27-13 Acceleration Smooth Mode Switch Setup

Step 2: Select “A0” to “A8” as teaching points.

Step 3: Configure “Point-to-Point” instruction with “Smooth Transition”, motion protection “None”.

../_images/318.png

Figure 9.27-14 Blending Settings for Conventional PTP

Step 4: Generate program; all instructions use optimized T-shape velocity.

../_images/399.png

Figure 9.27-15 Typical PTP-ARC Blending via Configuration Switch

9.27.2.4. PTP-CIRCLE Blending

9.27.2.4.1. Using Lua Instruction Mode

Step 1: Select teaching points “A0” to “A8” for PTP-CIRCLE.

Step 2: Set up “Point-to-Point” instruction with acceleration smooth mode.

../_images/315.png

Figure 9.27-16 Blending Settings for Accelerated Smooth PTP

Step 3: Add PTP and CIRCLE instructions, run between AccSmoothStart/End.

../_images/400.png

Figure 9.27-17 Typical PTP-CIRCLE Blending in Lua Mode

9.27.2.4.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode switch.

../_images/317.png

Figure 9.27-18 Acceleration Smooth Mode Configuration

Step 2: Choose “A0” to “A8” as teaching points.

Step 3: Configure PTP instruction with “Smooth Transition”, no motion protection.

../_images/318.png

Figure 9.27-19 Blending Settings for Conventional PTP

Step 4: Generate program for all-instruction optimized velocity.

../_images/401.png

Figure 9.27-20 PTP-CIRCLE Blending via Configuration Switch

9.27.2.5. LIN-PTP Blending

9.27.2.5.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A5” for LIN-PTP blending.

Step 2: Insert “Linear” instruction, set “Acceleration Smooth Mode”, “Transition Radius” and “Transition Mode”.

../_images/402.png

Figure 9.27-21 Blending Settings for Accelerated Smooth LIN

Step 3: Add LIN and PTP instructions, run within AccSmoothStart/End.

../_images/403.png

Figure 9.27-22 Typical LIN-PTP Blending in Lua Mode

9.27.2.5.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode in settings.

../_images/317.png

Figure 9.27-23 Acceleration Smooth Mode Switch Setup

Step 2: Select “A0” to “A5” as teaching points.

Step 3: Configure LIN instruction with transition parameters, no motion protection.

../_images/404.png

Figure 9.27-24 Blending Settings for Conventional LIN

Step 4: Generate program for all-instruction optimized velocity.

../_images/405.png

Figure 9.27-25 LIN-PTP Blending via Configuration Switch

9.27.2.6. LIN-LIN Blending

9.27.2.6.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A5” for LIN-LIN blending.

Step 2: Set up LIN instruction with acceleration smooth mode and transition parameters.

../_images/402.png

Figure 9.27-26 Blending Settings for Accelerated Smooth LIN

Step 3: Add multiple LIN instructions, run between AccSmoothStart/End.

../_images/416.png

Figure 9.27-27 Typical LIN-LIN Blending in Lua Mode

9.27.2.6.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode switch.

../_images/317.png

Figure 9.27-28 Acceleration Smooth Mode Configuration

Step 2: Choose “A0” to “A5” as teaching points.

Step 3: Configure LIN instruction with transition radius and mode.

../_images/404.png

Figure 9.27-29 Blending Settings for Conventional LIN

Step 4: Generate program for optimized velocity across all instructions.

../_images/417.png

Figure 9.27-30 LIN-LIN Blending via Configuration Switch

9.27.2.7. LIN-ARC Blending

9.27.2.7.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A8” for LIN-ARC blending.

Step 2: Configure LIN instruction with acceleration smooth mode and transition parameters.

../_images/402.png

Figure 9.27-31 Blending Settings for Accelerated Smooth LIN

Step 3: Add LIN and ARC instructions within AccSmoothStart/End.

../_images/406.png

Figure 9.27-32 Typical LIN-ARC Blending in Lua Mode

9.27.2.7.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode in settings.

../_images/317.png

Figure 9.27-33 Acceleration Smooth Mode Switch Setup

Step 2: Select “A0” to “A8” as teaching points.

Step 3: Set LIN instruction with transition radius and mode, no motion protection.

../_images/404.png

Figure 9.27-34 Blending Settings for Conventional LIN

Step 4: Generate program for all-instruction optimized velocity.

../_images/407.png

Figure 9.27-35 LIN-ARC Blending via Configuration Switch

9.27.2.8. LIN-CIRCLE Blending

9.27.2.8.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A8” for LIN-CIRCLE blending.

Step 2: Configure LIN instruction with acceleration smooth mode and transition parameters.

../_images/402.png

Figure 9.27-36 Blending Settings for Accelerated Smooth LIN

Step 3: Add LIN and CIRCLE instructions between AccSmoothStart/End.

../_images/408.png

Figure 9.27-37 Typical LIN-CIRCLE Blending in Lua Mode

9.27.2.8.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode switch.

../_images/317.png

Figure 9.27-38 Acceleration Smooth Mode Configuration

Step 2: Choose “A0” to “A8” as teaching points.

Step 3: Set LIN instruction with transition radius and mode, no motion protection.

../_images/404.png

Figure 9.27-39 Blending Settings for Conventional LIN

Step 4: Generate program for optimized velocity across all instructions.

../_images/409.png

Figure 9.27-40 LIN-CIRCLE Blending via Configuration Switch

9.27.2.9. ARC-PTP Blending

9.27.2.9.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A9” for ARC-PTP blending.

Step 2: Configure “Arc” instruction with acceleration smooth mode and “Smooth Transition”.

../_images/410.png

Figure 9.27-41 Blending Settings for Accelerated Smooth ARC

Step 3: Add ARC and PTP instructions within AccSmoothStart/End.

../_images/411.png

Figure 9.27-42 Typical ARC-PTP Blending in Lua Mode

9.27.2.9.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode in settings.

../_images/317.png

Figure 9.27-43 Acceleration Smooth Mode Switch Setup

Step 2: Select “A0” to “A9” as teaching points.

Step 3: Set Arc instruction with “Smooth Transition”, no motion protection.

../_images/418.png

Figure 9.27-44 Blending Settings for Conventional ARC

Step 4: Generate program for all-instruction optimized velocity.

../_images/412.png

Figure 9.27-45 ARC-PTP Blending via Configuration Switch

9.27.2.10. ARC-LIN Blending

9.27.2.10.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A9” for ARC-LIN blending.

Step 2: Configure Arc instruction with acceleration smooth mode and “Smooth Transition”.

../_images/410.png

Figure 9.27-46 Blending Settings for Accelerated Smooth ARC

Step 3: Add ARC and LIN instructions between AccSmoothStart/End.

../_images/413.png

Figure 9.27-47 Typical ARC-LIN Blending in Lua Mode

9.27.2.10.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode switch.

../_images/317.png

Figure 9.27-48 Acceleration Smooth Mode Configuration

Step 2: Choose “A0” to “A9” as teaching points.

Step 3: Set Arc instruction with “Smooth Transition”, no motion protection.

../_images/419.png

Figure 9.27-49 Blending Settings for Conventional ARC

Step 4: Generate program for optimized velocity across all instructions.

../_images/414.png

Figure 9.27-50 ARC-LIN Blending via Configuration Switch

9.27.2.11. ARC-ARC Blending

9.27.2.11.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A12” for ARC-ARC blending.

Step 2: Configure Arc instruction with acceleration smooth mode and “Smooth Transition”.

../_images/410.png

Figure 9.27-51 Blending Settings for Accelerated Smooth ARC

Step 3: Add multiple Arc instructions within AccSmoothStart/End.

../_images/420.png

Figure 9.27-52 Typical ARC-ARC Blending in Lua Mode

9.27.2.11.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode in settings.

../_images/317.png

Figure 9.27-53 Acceleration Smooth Mode Switch Setup

Step 2: Select “A0” to “A12” as teaching points.

Step 3: Set Arc instruction with “Smooth Transition”, no motion protection.

../_images/419.png

Figure 9.27-54 Blending Settings for Conventional ARC

Step 4: Generate program for all-instruction optimized velocity.

../_images/421.png

Figure 9.27-55 ARC-ARC Blending via Configuration Switch

9.27.2.12. ARC-CIRCLE Blending

9.27.2.12.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A12” for ARC-CIRCLE blending.

Step 2: Configure Arc instruction with acceleration smooth mode and “Smooth Transition”.

../_images/410.png

Figure 9.27-56 Blending Settings for Accelerated Smooth ARC

Step 3: Add Arc and CIRCLE instructions between AccSmoothStart/End.

../_images/422.png

Figure 9.27-57 Typical ARC-CIRCLE Blending in Lua Mode

9.27.2.12.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode switch.

../_images/317.png

Figure 9.27-58 Acceleration Smooth Mode Configuration

Step 2: Choose “A0” to “A12” as teaching points.

Step 3: Set Arc instruction with “Smooth Transition”, no motion protection.

../_images/419.png

Figure 9.27-59 Blending Settings for Conventional ARC

Step 4: Generate program for optimized velocity across all instructions.

../_images/423.png

Figure 9.27-60 ARC-CIRCLE Blending via Configuration Switch

9.27.2.13. CIRCLE-PTP Blending

9.27.2.13.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A9” for CIRCLE-PTP blending.

Step 2: Configure “Full Circle” instruction with acceleration smooth mode and “Smooth Transition”.

../_images/424.png

Figure 9.27-61 Blending Settings for Accelerated Smooth CIRCLE

Step 3: Add CIRCLE and PTP instructions within AccSmoothStart/End.

../_images/425.png

Figure 9.27-62 Typical CIRCLE-PTP Blending in Lua Mode

9.27.2.13.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode in settings.

../_images/317.png

Figure 9.27-63 Acceleration Smooth Mode Switch Setup

Step 2: Select “A0” to “A9” as teaching points.

Step 3: Set Full Circle instruction with “Smooth Transition”, no motion protection.

../_images/426.png

Figure 9.27-64 Blending Settings for Conventional CIRCLE

Step 4: Generate program for all-instruction optimized velocity.

../_images/427.png

Figure 9.27-65 CIRCLE-PTP Blending via Configuration Switch

9.27.2.14. CIRCLE-LIN Blending

9.27.2.14.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A12” for CIRCLE-LIN blending.

Step 2: Configure Full Circle instruction with acceleration smooth mode and “Smooth Transition”.

../_images/424.png

Figure 9.27-66 Blending Settings for Accelerated Smooth CIRCLE

Step 3: Add CIRCLE and LIN instructions between AccSmoothStart/End.

../_images/428.png

Figure 9.27-67 Typical CIRCLE-LIN Blending in Lua Mode

9.27.2.14.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode switch.

../_images/317.png

Figure 9.27-68 Acceleration Smooth Mode Configuration

Step 2: Choose “A0” to “A12” as teaching points.

Step 3: Set Full Circle instruction with “Smooth Transition”, no motion protection.

../_images/426.png

Figure 9.27-69 Blending Settings for Conventional CIRCLE

Step 4: Generate program for optimized velocity across all instructions.

../_images/429.png

Figure 9.27-70 CIRCLE-LIN Blending via Configuration Switch

9.27.2.15. CIRCLE-ARC Blending

9.27.2.15.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A12” for CIRCLE-ARC blending.

Step 2: Configure Full Circle instruction with acceleration smooth mode and “Smooth Transition”.

../_images/424.png

Figure 9.27-71 Blending Settings for Accelerated Smooth CIRCLE

Step 3: Add CIRCLE and Arc instructions within AccSmoothStart/End.

../_images/430.png

Figure 9.27-72 Typical CIRCLE-ARC Blending in Lua Mode

9.27.2.15.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode in settings.

../_images/317.png

Figure 9.27-73 Acceleration Smooth Mode Switch Setup

Step 2: Select “A0” to “A12” as teaching points.

Step 3: Set Full Circle instruction with “Smooth Transition”, no motion protection.

../_images/426.png

Figure 9.27-74 Blending Settings for Conventional CIRCLE

Step 4: Generate program for all-instruction optimized velocity.

../_images/431.png

Figure 9.27-75 CIRCLE-ARC Blending via Configuration Switch

9.27.2.16. CIRCLE-CIRCLE Blending

9.27.2.16.1. Using Lua Instruction Mode

Step 1: Select “A0” to “A12” for CIRCLE-CIRCLE blending.

Step 2: Configure Full Circle instruction with acceleration smooth mode and “Smooth Transition”.

../_images/424.png

Figure 9.27-76 Blending Settings for Accelerated Smooth CIRCLE

Step 3: Add multiple CIRCLE instructions within AccSmoothStart/End.

../_images/432.png

Figure 9.27-77 Typical CIRCLE-CIRCLE Blending in Lua Mode

9.27.2.16.2. Using Motion Configuration Switch Mode

Step 1: Enable acceleration smooth mode switch.

../_images/317.png

Figure 9.27-78 Acceleration Smooth Mode Configuration

Step 2: Choose “A0” to “A12” as teaching points.

Step 3: Set Full Circle instruction with “Smooth Transition”, no motion protection.

../_images/426.png

Figure 9.27-79 Blending Settings for Conventional CIRCLE

Step 4: Generate program for optimized velocity across all instructions.

../_images/433.png

Figure 9.27-80 CIRCLE-CIRCLE Blending via Configuration Switch

9.27.2.17. Blending for Extended Axis Asynchronous Motion

9.27.2.17.1. Using Lua Command Method

Step1: Select the taught points for extended axis asynchronous motion blending. This manual uses “A0” to “A5” as the taught point names.

Step2: Click “Teach Program” → “Program Editing”, select the “Extended Axis” command under “Peripheral Commands”, set “Motion Mode” to “Asynchronous”, select the taught points and configure the debug speed. For motion protection, choose “Acceleration Smoothing Mode” and set the “Smooth Transition” parameter at the points requiring smoothing.

../_images/435.png

Figure 9.27-81 Extended Axis Asynchronous Motion Blending Command Settings

Step3: Add motion commands, generate and run the Lua program to achieve blending for extended axis asynchronous motion. This method only applies S-curve velocity planning and blending between AccSmoothStart() and AccSmoothEnd(), while using T-curve planning for other commands.

../_images/436.png

Figure 9.27-82 Typical Lua Program for Extended Axis Asynchronous Motion Blending

9.27.2.17.2. Using Motion Configuration Switch

Step1: Click “Initial Setup” → “Safety” → “Motion Configuration” and enable the “Acceleration Smoothing Mode” switch.

../_images/317.png

Figure 9.27-83 Acceleration Smoothing Mode Configuration Switch

Step2: Select the taught points for extended axis asynchronous motion blending. This manual uses “A0” to “A5” as the taught point names.

Step3: Click “Teach Program” → “Program Editing”, select the “Extended Axis” command under “Peripheral Commands”, set “Motion Mode” to “Asynchronous”, select the taught points and configure the debug speed. For motion protection, choose “None” and set the “Smooth Transition” parameter at the points requiring smoothing.

../_images/437.png

Figure 9.27-84 Standard Extended Axis Asynchronous Motion Blending Command Settings

Step4: Add multiple motion commands, generate and run the Lua program to achieve blending for extended axis asynchronous motion. The typical program is the same as standard extended axis motion programs. This method applies S-curve velocity planning and blending to all motions.

../_images/438.png

Figure 9.27-85 Typical Program for Extended Axis Asynchronous Motion Blending Using Configuration Switch

9.27.2.18. Blending for Extended Axis Synchronous Motion

9.27.2.18.1. Using Lua Command Method

Step1: Select the taught points for extended axis synchronous motion blending. This manual uses “A0” to “A5” as the taught point names.

Step2: Click “Teach Program” → “Program Editing”, select the “Extended Axis” command under “Peripheral Commands”, set “Motion Mode” to “Synchronous”, select the taught points and configure the debug speed. For motion protection, choose “Acceleration Smoothing Mode” and set the “Smooth Transition” parameter at the points requiring smoothing.

../_images/439.png

Figure 9.27-86 Extended Axis Synchronous Motion Blending Command Settings

Step3: Add motion commands, generate and run the Lua program to achieve blending for extended axis synchronous motion. This method only applies S-curve velocity planning and blending between AccSmoothStart() and AccSmoothEnd(), while using T-curve planning for other commands.

../_images/440.png

Figure 9.27-87 Typical Lua Program for Extended Axis Synchronous Motion Blending

9.27.2.18.2. Using Motion Configuration Switch

Step1: Click “Initial Setup” → “Safety” → “Motion Configuration” and enable the “Acceleration Smoothing Mode” switch.

../_images/317.png

Figure 9.27-88 Acceleration Smoothing Mode Configuration Switch

Step2: Select the taught points for extended axis synchronous motion blending. This manual uses “A0” to “A5” as the taught point names.

Step3: Click “Teach Program” → “Program Editing”, select the “Extended Axis” command under “Peripheral Commands”, set “Motion Mode” to “Synchronous”, select the taught points and configure the debug speed. For motion protection, choose “None” and set the “Smooth Transition” parameter at the points requiring smoothing.

../_images/441.png

Figure 9.27-89 Standard Extended Axis Synchronous Motion Blending Command Settings

Step4: Add multiple motion commands, generate and run the Lua program to achieve blending for extended axis synchronous motion. The typical program is the same as standard extended axis motion programs. This method applies S-curve velocity planning and blending to all motions.

../_images/442.png

Figure 9.27-90 Typical Program for Extended Axis Synchronous Motion Blending Using Configuration Switch

9.28. Swing Tilt Angle Function

9.28.1. Overview

The robot swing tilt angle function allows the robot’s end tool to customize the swing angle around the Rx direction of the swing coordinate system during swinging motion, reducing the difference in contact length between the fillet weld and the connected materials on both sides in operations such as lap welding.

9.28.2. Operation Procedure

On the robot’s web control interface, click “Teaching Program” -> “Program Editing” to enter the “Motion Command” interface, as shown below.

../_images/320.png

Figure 9.28-1 Motion Command Interface

In the “Motion Command” interface, click “Weave” to enter the “Weave” command editing interface.

../_images/321.png

Figure 9.28-2 Weave Command Editing Interface

In the “Weave” command editing interface, click the “Selection Number” dropdown to choose different swing parameter configurations. Click the button next to the dropdown to modify the swing parameters under the selected number.

../_images/322.png

Figure 9.28-3 Swing Parameter Configuration

In the swing parameter configuration, enter a custom rotation angle around the Rx direction of the swing coordinate system in the “Swing Direction Tilt Angle” field, then click “Configure” to complete the setup.

Note

Note: The “Swing Direction Tilt Angle” parameter is applicable to “Triangle Wave Swing,” “Sine Wave Swing,” “Circular Swing - Clockwise,” and “Circular Swing - Counterclockwise” in the “Swing Type” parameter.

The following example demonstrates the swing tilt angle function using Lin motion:

Step 1: In the “Weave” command editing interface, select a pre-configured swing parameter set from the “Selection Number” dropdown. Under “Command Type,” click “Start Weave,” then click “Add” to enable the swing function.

../_images/323.png

Figure 9.28-4 Adding Start Weave

Step 2: In the “Motion Command” interface, click “Linear” to create a Lin linear motion (basic motion command, not detailed here).

Step 3: In the “Weave” command editing interface, under “Command Type,” click “Stop Weave,” then click “Add” to disable the swing function.

../_images/324.png

Figure 9.28-5 Adding Stop Weave

Step 4: After completing Steps 1–3, check the correctness of the settings in the “Program Preview” section of the “Weave” command editing interface.

../_images/325.png

Figure 9.28-6 Swing Program Preview

Step 5: After verifying the program in the “Program Preview” section, click “Apply” to automatically generate executable LUA code.

../_images/326.png

Figure 9.28-7 Example LUA Swing Motion Program

9.29. Welding process parameter gradient function (current, voltage, travel speed along weld seam)

9.29.1. Overview

The welding parameter gradual change function (current, voltage, and travel speed along the weld seam) supports customizing the variation range of process parameters during welding.

9.29.2. Current/Voltage Parameter Gradual Change Process

9.29.2.1. Current Parameter Gradual Change

On the robot web control interface, navigate to “Teach Program” -> “Program Editing” to enter the “Welding Command” interface as shown below.

../_images/327.png

Figure 9.29-1 Welding Command Interface

In the “Welding Command” interface, click “Weld” to enter the “Weld” command configuration interface.

../_images/328.png

Figure 9.29-2 Weld Command Configuration Interface

In the “Command Type” section of the “Weld” command configuration interface, click “Welding Current Gradual Start” to configure parameters including “Start Current”, “End Current”, “Welding Current Control AO”, and “Smoothing Option”.

For example, configure “Start Current” as 260 A, “End Current” as 220 A, “Welding Current Control AO” as “Ctrl-AO0” control box analog channel, and “Smoothing Option” as “Break”. Click “Add” to complete configuration, then verify parameters in the “Program Preview” section for any errors.

../_images/329.png

Figure 9.29-3 Welding Current Gradual Start Command Parameters

In the “Command Type” section of the “Weld” command configuration interface, click “Welding Current Gradual End”. No parameters need to be configured. Click “Add” to complete, then verify in “Program Preview”.

../_images/330.png

Figure 9.29-4 Welding Current Gradual End Command Parameters

After configuring both start and end commands, click “Apply” to automatically generate executable LUA program.

Note

During configuration, motion commands must be included. A typical LUA program combining arc tracking motion with current gradual change is shown below.

../_images/331.png

Figure 9.29-5 Typical Current Gradual Change Arc Tracking LUA Program

9.29.2.2. Voltage Parameter Gradual Change

In the “Command Type” section of the “Weld” command configuration interface, click “Welding Voltage Gradual Start” to configure parameters including “Start Voltage”, “End Voltage”, “Welding Voltage Control AO”, and “Smoothing Option”.

For example, configure “Start Voltage” as 25 V, “End Voltage” as 22 V, “Welding Voltage Control AO” as “Ctrl-AO1” control box analog channel, and “Smoothing Option” as “Break”. Click “Add” to complete configuration, then verify in “Program Preview”.

../_images/332.png

Figure 9.29-6 Welding Voltage Gradual Start Command Parameters

In the “Command Type” section, click “Welding Voltage Gradual End”. No parameters need configuration. Click “Add” then verify.

../_images/333.png

Figure 9.29-7 Welding Voltage Gradual End Command Parameters

After configuration, click “Apply” to generate LUA program.

../_images/334.png

Figure 9.29-8 Typical Voltage Gradual Change Arc Tracking LUA Program

9.29.3. Travel Speed Gradual Change Process

Navigate to “Teach Program” -> “Program Editing” -> “Motion Command” interface.

../_images/335.png

Figure 9.29-9 Motion Command Interface

Click “Weave” to enter configuration interface.

../_images/336.png

Figure 9.29-10 Weave Command Configuration Interface

In “Command Type”, click “Weave Gradual Start” to configure “Start Speed”, “End Speed”, and “Gradual Mode”.

For example, set “Gradual Mode” as “Weave+Travel Speed”, “Start Speed” as 24 cm/min, and “End Speed” as 30 cm/min. Click “Add” then verify.

../_images/337.png

Figure 9.29-11 Weave+Travel Speed Gradual Start Parameters

Click “Weave Gradual End” (no parameters needed), then “Add” and verify.

../_images/338.png

Figure 9.29-12 Weave+Travel Speed Gradual End Parameters

Click “Apply” to generate LUA program.

Note

Motion commands must be included. A sample program is shown below.

../_images/339.png

Figure 9.29-13 Typical Travel Speed Gradual Change Arc Tracking LUA Program

Note

Before configuring parameters in “Weld” or “Weave” interfaces, confirm the communication method between control box and welder (analog: “Controller I/O”; digital: “Digital Communication Protocol”).

9.29.4. Swing Dwell Time Gradient Function

9.29.4.1. Overview

For the triangle wave swing, vertical L-shaped triangle wave swing, sine wave swing, and vertical L-shaped sine wave swing, where the swing amplitude and dwell time are inconsistent at the start and end of the swing, this function gradually changes the swing amplitude and dwell time from the start set value to the end set value.

For the triangle wave swing and sine wave swing, where the swing amplitude, dwell time, and forward speed are inconsistent at the start and end of the swing, this function gradually changes the swing amplitude, dwell time, and forward speed from the start set value to the end set value.

9.29.4.2. Operation Procedure

Step1: Swing parameter setting. Click “Teaching Program” - “Program Programming” - “Swing” button, select the initial swing number and set the swing parameters, then select the end swing number and set the swing parameters. Note: Only the swing amplitude, left dwell time, and right dwell time can be inconsistent between the initial and end swing parameters; all other parameters must be consistent.

../_images/545.png

Figure 9.29-14 Swing Parameter Setting

Step2: Gradient mode setting. Click “Swing Gradient Start” to set the corresponding gradient mode: For triangle wave swing, vertical L-shaped triangle wave swing, sine wave swing, and vertical L-shaped sine wave swing, the gradient mode can be set to “Swing”; For triangle wave swing and sine wave swing, the gradient mode can also be set to “Swing + Forward Speed”, and additional settings for the start speed and end speed during the swing are required.

../_images/546.png

Figure 9.29-15 “Swing” Gradient Mode Setting

../_images/547.png

Figure 9.29-16 “Swing + Forward Speed” Gradient Mode Setting

Step3: Writing the swing gradient program. Click “Start Swing”, select the start swing number and add it; then click “Swing Gradient Start”, set the end swing number and gradient mode, and add it; then click “Swing Gradient End” and “Stop Swing” in sequence and add them; finally, manually add the swing start point position and end point position in the Lua program to generate a typical Lua program.

../_images/548.png

Figure 9.29-17 Typical Program for Swing Dwell Time Gradient

9.29.5. Fixed-Point Swing Function

9.29.5.1. Overview

For triangle wave swing, vertical L-shaped triangle wave swing, circular swing - clockwise, circular swing - counterclockwise, sine wave swing, vertical L-shaped sine wave swing, and vertical welding triangle swing, a fixed-point swing function is added: the robot end-effector only swings without moving forward. Note: This function requires the tool center point (TCP) to be calibrated first.

9.29.5.2. Operation Procedure

Step1: Swing parameter setting. Click “Teaching Program” - “Program Programming” - “Swing” button, edit the swing number to set swing parameters. Note: If the actual fixed-point swing time needs to be consistent with the set fixed-point swing time, the dwell time cannot be set.

../_images/558.png

Figure 9.29-18 Swing Parameter Setting

Step2: Fixed-point swing parameter setting. Click “Teaching Program” - “Program Programming” - “Swing” - “Fixed-Point Swing Start” button, set the swing reference and swing time parameters, click “Add”, then click the “Fixed-Point Swing End” button and click “Add”. The swing reference can be selected from two types: “Tool Coordinate System” and “Reference Point”. When “Tool Coordinate System” is selected as the swing reference, the X direction of the current point’s tool coordinate system is used as the forward direction, and the Y direction of the current point’s tool coordinate system is used as the swing direction. When “Reference Point” is selected as the swing reference, the line between the current point and the reference point is used as the forward direction, and the swing direction is determined by the swing algorithm. Note: The reference point and the current position must have the same tool coordinate system and workpiece coordinate system. The two swing references are shown in the figures respectively.

../_images/559.png

Figure 9.29-19 Swing Reference as “Tool Coordinate System”

../_images/560.png

Figure 9.29-20 Swing Reference as “Reference Point”

Step3: Write the fixed-point swing program. The Lua programs generated for the two swing references are shown in the figures respectively. Running the Lua program enables the fixed-point swing function.

../_images/561.png

Figure 9.29-21 Fixed-Point Swing Program with Swing Reference as “Tool Coordinate System”

../_images/562.png

Figure 9.29-22 Fixed-Point Swing Program with Swing Reference as “Reference Point”

9.29.6. Laser Fixed-Point Swing Function

9.29.6.1. Overview

The laser fixed-point swing function is a combination of the robot’s fixed-point swing function and the laser tracking function: based on the original robot fixed-point swing, the swing position can be adjusted through the laser tracking function, and it can be adapted to extension axis motion. This function is only effective for “triangle wave swing” and “sine wave swing” types.

9.29.6.2. Laser + Fixed-Point Swing Function Operation Procedure

Step1: Configure laser communication. Refer to the corresponding chapter in the user manual for specific operation steps. When applying to scenarios such as actual welding, pay attention to the following:

    1. The line laser sensor must be equipped with protective devices to avoid the influence of strong light and welding spatter;

    1. The line laser data acquisition recognition point should maintain a certain distance from the welding point to reduce the impact of strong light on laser data acquisition quality during welding.

Step2: Calibrate the robot tool coordinate system and laser coordinate system. Refer to the corresponding chapter in the user manual for specific operation steps.

Step3: Adjust the position of the workpiece and the laser beam. The schematic is shown in the figure below, where the black rectangle is the workpiece and the red line segment is the laser beam. The laser beam should be perpendicular to the edge of the workpiece to be tracked to ensure good tracking performance.

../_images/563.png

Figure 9.29-23 Workpiece and Laser Beam Schematic

Step4: Swing parameter setting. Click the “Teaching Program” - “Program Programming” - “Swing” button, edit the swing number to set swing parameters. Note: (1) The laser + fixed-point swing function is only effective for “triangle wave swing” and “sine wave swing” types; (2) If the actual fixed-point swing time needs to be consistent with the set fixed-point swing time, the left and right dwell times cannot be set; (3) To ensure laser tracking performance, the left and right dwell times must be consistent.

../_images/564.png

Figure 9.29-24 Swing Parameter Setting

Step5: Fixed-point swing parameter setting. Click the “Teaching Program” - “Program Programming” - “Swing” - “Fixed-Point Swing Start” button, set the swing reference and swing time parameters, click “Add”, then click the “Fixed-Point Swing End” button and click “Add”. The swing reference can be selected from two types: “Tool Coordinate System” and “Reference Point”. When “Tool Coordinate System” is selected as the swing reference, the X direction of the current point’s tool coordinate system is used as the forward direction, and the Y direction of the current point’s tool coordinate system is used as the swing direction. When “Reference Point” is selected as the swing reference, the line between the current point and the reference point is used as the forward direction, and the swing direction is determined by the swing algorithm. Note: The reference point and the current position must have the same tool coordinate system and workpiece coordinate system.

../_images/559.png

Figure 9.29-25 Swing Reference as “Tool Coordinate System”

../_images/560.png

Figure 9.29-26 Swing Reference as “Reference Point”

Step6: Add laser tracking instruction. Click “Teaching Program” - “Program Programming” - “Laser Tracking” button in sequence, then click “Start Tracking” and select the laser coordinate system calibrated in Step 2 (this manual uses toolcoord5 as an example), and finally click “Stop Tracking”.

../_images/565.png

Figure 9.29-27 Laser Tracking Setting

Step7: Write the Lua program for laser + fixed-point swing. Adjust the instruction order generated in Step 5 and Step 6. The Lua programs generated for the two fixed-point swing references are shown in the figures below respectively. The program running time is only related to the set time of the fixed-point swing and is independent of the interface speed. Run the Lua program to realize the laser + fixed-point swing function.

../_images/566.png

Figure 9.29-28 Laser + Fixed-Point Swing Program 1

../_images/567.png

Figure 9.29-29 Laser + Fixed-Point Swing Program 2

9.29.6.3. Laser + Extension Axis + Fixed-Point Swing Function Operation Procedure

Step1: Configure laser communication. Refer to the corresponding chapter in the user manual for specific operation steps. When applying to scenarios such as actual welding, pay attention to the following:

    1. The line laser sensor must be equipped with protective devices to avoid the influence of strong light and welding spatter;

    1. The line laser data acquisition recognition point should maintain a certain distance from the welding point to reduce the impact of strong light on laser data acquisition quality during welding.

Step2: Configure extension axis communication. Refer to the corresponding chapter in the user manual for specific operation steps.

Step3: Calibrate the robot tool coordinate system and laser coordinate system. Refer to the corresponding chapter in the user manual for specific operation steps.

Step4: Adjust the position of the workpiece and the laser beam. The schematic is shown in the figure below, where the black rectangle is the workpiece and the red line segment is the laser beam. The laser beam should be perpendicular to the edge of the workpiece to be tracked to ensure good tracking performance.

../_images/563.png

Figure 9.29-30 Relative Position of Workpiece and Laser Beam Schematic

Step5: Swing parameter setting. Click the “Teaching Program” - “Program Programming” - “Swing” button, edit the swing number to set swing parameters. Note: (1) The laser + extension axis + fixed-point swing function is only effective for “triangle wave swing” and “sine wave swing” types; (2) If the actual fixed-point swing time needs to be consistent with the set fixed-point swing time, the left and right dwell times cannot be set; (3) To ensure laser tracking performance, the left and right dwell times must be consistent.

../_images/564.png

Figure 9.29-31 Swing Parameter Setting

Step6: Fixed-point swing parameter setting. Click the “Teaching Program” - “Program Programming” - “Swing” - “Fixed-Point Swing Start” button, set the swing reference and swing time parameters, click “Add”, then click the “Fixed-Point Swing End” button and click “Add”. The swing reference can be selected from two types: “Tool Coordinate System” and “Reference Point”. When “Tool Coordinate System” is selected as the swing reference, the X direction of the current point’s tool coordinate system is used as the forward direction, and the Y direction of the current point’s tool coordinate system is used as the swing direction. When “Reference Point” is selected as the swing reference, the line between the current point and the reference point is used as the forward direction, and the swing direction is determined by the swing algorithm. Note: The reference point and the current position must have the same tool coordinate system and workpiece coordinate system.

../_images/559.png

Figure 9.29-32 Swing Reference as “Tool Coordinate System”

../_images/560.png

Figure 9.29-33 Swing Reference as “Reference Point”

Step7: Add extension axis motion instruction. Click “Teaching Program” - “Program Programming” - “Extension Axis” button in sequence, then click “Motion Instruction”, select “Asynchronous” as the motion mode, select the start point and end point of the motion, and click the “Add” button.

../_images/568.png

Figure 9.29-34 Add Extension Axis Motion

Step8: Add laser tracking instruction. Click “Teaching Program” - “Program Programming” - “Laser Tracking” button in sequence, then click “Start Tracking” and select the laser coordinate system calibrated in Step 3 (this manual uses toolcoord5 as an example), and finally click “Stop Tracking”.

../_images/565.png

Figure 9.29-35 Laser Tracking Setting

Step9: Write the Lua program for laser + extension axis + fixed-point swing. Adjust the instruction order generated in Step 5, Step 6 and Step 7. The Lua programs generated for the two fixed-point swing references are shown in Figure 3-7 and Figure 3-8 respectively. The program running time is only related to the set time of the fixed-point swing and is independent of the interface speed. Run the Lua program to realize the laser + extension axis + fixed-point swing function.

../_images/569.png

Figure 9.29-36 Laser + Extension Axis + Fixed-Point Swing Program 1

../_images/570.png

Figure 9.29-37 Laser + Extension Axis + Fixed-Point Swing Program 2

9.30. Robot ModbusRTU Communication

9.30.1. Overview

ModbusRTU is a commonly used communication protocol in industrial production. FAIR collaborative robots provide two communication methods: ModbusRTU Master and ModbusRTU Slave. The collaborative robot supports up to 8 ModbusRTU Masters communicating simultaneously with external devices, with each master supporting up to 128 registers. The robot’s ModbusRTU Slave has 64 coils, 64 discrete inputs, 32 holding registers, and 32 input registers (holding registers and input registers support both signed and floating-point data types).

Additionally, some input register addresses of the robot’s ModbusRTU Slave are dedicated to feedback information such as current joint positions and motion speeds. Some coil register addresses are dedicated to controlling robot operations like starting programs, stopping programs, and setting control box DOs. The robot’s ModbusRTU Slave only supports connection with one master. Detailed usage methods are described below.

9.30.2. Robot ModbusRTU Master Operation Instructions

Before using the collaborative robot as a ModbusRTU Master to communicate with your device, please check the 485 hardware connection between your device and the robot. The steps to use the robot as a ModbusRTU Master are as follows: ① Add a master; ② Add registers; ③ Communication test; ④ Write user program; ⑤ Execute user program.

9.30.2.1. Adding a ModbusRTU Master

Open WebApp, click “Teach Simulation” and “Program Teaching” in sequence, and create a new user program “testModbusRTUMaster.lua”.

../_images/340.png

Figure 9.30-1 Creating a ModbusRTU Master User Program

Click the “ModbusRTU Settings” button to open the ModbusRTU configuration page.

../_images/341.png

Figure 9.30-2 Opening ModbusRTU Settings

Click “Master Settings” and then “Add Modbus Master” to complete adding a ModbusRTU Master.

../_images/342.png

Figure 9.30-3 Adding a “ModbusRTU Master”

Select “Baud Rate”, “Data Bits”, “Parity”, and “Stop Bits” according to your slave device configuration. The meanings of these parameters are as follows:

Baud Rate: The baud rate used for ModbusRTU communication. Supported values: 9600, 14400, 19200, 38400, 56000, 67600, 115200, 128000. Default is 115200. Set to match the slave device.

Data Bits: Currently only supports 8 bits. Set to match the slave device.

Parity: Parity method. Supports None, Odd, Even. Default is None. Set to match the slave device.

Stop Bits: Supports 0.5, 1, 1.5, 2. Default is 1. Set to match the slave device.

../_images/343.png

Figure 9.30-4 Setting ModbusRTU Master Parameters

After correctly entering the above parameters, the robot ModbusRTU Master can communicate with the slave device. (If you have confirmed that the ModbusRTU Master parameters are correctly configured but communication fails, please check the following:

① Physical 485 connection between the robot and slave device; ② Check the slave device’s communication configuration and test the communication link with a serial port debugging tool first. For example, configure the same ModbusRTU parameters on the PC, create a new register in the robot web interface, and perform a 0x03 read holding register operation to see if the serial port debugging tool receives data. As shown below, reading register address 0x1000 with 0x03 instruction, the PC can receive data normally, indicating correct communication configuration.)

../_images/344.png

Figure 9.30-5 Verifying Modbus Connection Status

At this point, we have completed the creation of a robot ModbusRTU Master. If you click “Add Modbus Master” again, you can create another new ModbusRTU Master (Figure 2-6). The robot supports up to 8 masters communicating with external devices simultaneously. Double-click the “Delete” button in the upper right corner of the Modbus Master to delete it.

../_images/345.png

Figure 9.30-6 Adding Another ModbusRTU Master

9.30.2.2. Adding Registers to ModbusRTU Master

Click the “Add Master Register” button to add a register to the master.

../_images/346.png

Figure 9.30-7 Adding a ModbusRTU Master Register

Select the master register type, input address number, and name in sequence. The meanings of each parameter are as follows:

Type: Modbus function code. 0x01-Read Coils; 0x02-Read Discrete Inputs; 0x03-Read Holding Registers (signed -32768-32767); 0x03-Read Holding Registers (floating-point, 32-bit data length, occupies two registers, 4 bytes); 0x04-Read Input Registers (signed -32768-32767); 0x04-Read Input Registers (floating-point, 32-bit data length, occupies two registers, 4 bytes); 0x05-Write Single Coil; 0x06-Write Single Holding Register; 0x0F-Write Multiple Coils; 0x10-Write Multiple Holding Registers. Floating-point registers are displayed in big-endian format.

Register Address: The register address of the ModbusRTU Slave to read or write.

Register Quantity: The number of registers to operate when reading or writing multiple registers (0x05, 0x06 can only be 1). Supports up to 12 registers.

Address Value: Display value for reading, or write value (use English comma “,” to separate multiple values).

../_images/347.png

Figure 9.30-8 Setting ModbusRTU Master Register Parameters

Click the “Add Master Register” button again to add another master register. Double-click the “Delete” button on the right side of the register to delete it. The figure below shows the supported function code registers.

../_images/348.png

Figure 9.30-9 Adding Multiple Master Registers

9.30.2.3. ModbusRTU Master Communication Test

The robot Modbus Master register has an “Address Value” field to display the current register value. Registers of types 0x01, 0x02, 0x03, and 0x04 are read-only, and their address values are displayed in gray non-editable fields. When the value of the corresponding address in the slave changes, the robot master can read the corresponding register address value by clicking the read button and display the current value synchronously. Function codes 0x05, 0x06, 0x0F, and 0x10 are write operations, and their address values are displayed in white editable fields. You can modify the register value on the robot Modbus Master settings page.

../_images/349.png

Figure 9.30-10 Modbus Master Address Value

9.30.2.3.1. Master Read Register Test

On the external ModbusRTU Slave device, continuously read 10 coils starting from address 0x4000, 12 discrete inputs starting from address 0x3000, 2 holding registers starting from address 0x2010 using int16, and 1 floating-point input register at address 0x1029. The corresponding register address values on the robot Modbus Master settings page will display accordingly. The sent data frames are shown below (since the register at address 0x1029 is set to floating-point type, it actually reads two 16-bit registers, 0x1029 and 0x102A, to store one floating-point number, but the read quantity is set to 1).

../_images/350.png

Figure 9.30-11 Modbus Master Displaying Read Register Values (Command Frame Screenshot)

9.30.2.3.2. Master Write Register Test

On the robot ModbusRTU Master settings page, write a single coil at address 0x1000 with a value of 1; write a single register at address 0x1001 with a value of 2001; write 5 coils starting at address 0x2000 with values 1,1,0,1,1; write 2 holding registers starting at address 0x2010 with int16 data type and values 3001, 3002; write a floating-point holding register at address 0x1029 (actually two 16-bit registers) with a value of 21.55; the corresponding register addresses on the Modbus Slave have been written with the specified values.

../_images/351.png

Figure 9.30-12 ModbusRTU Master Write Operation (Command Frame Screenshot)

9.30.2.4. Writing a ModbusRTU Master Program

Click “All” and then “Communication Instructions” to open the communication instruction addition page.

../_images/352.png

Figure 9.30-13 Opening the Communication Instruction Addition Page

Click “Modbus”.

../_images/353.png

Figure 9.30-14 Selecting Modbus

Click “Modbus_RTU”, select “Master (Client)”, to open the ModbusRTU Master instruction addition page.

../_images/354.png

Figure 9.30-15 Selecting Modbus_RTU

9.30.2.4.1. Write Single Coil

Select “Write Register”, function code 0x05-Single Coil, register/coil address 0x1000, register value/coil quantity 1, byte array {1}, click “Add” button. Finally, scroll to the bottom of the page and click “Apply” button (Figure 2-16).

../_images/355.png

Figure 9.30-16 Writing a Single Coil

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Master instruction to write a single digital output. Switch the robot to automatic mode and click the start button. The robot will write the value 1 to the coil register address 0x1000.

../_images/356.png

Figure 9.30-17 LUA Program for Writing a Single Coil

9.30.2.4.2. Write Multiple Coils

Select “Write Register”, function code 0x0F-Multiple Coils, register/coil address 0x1010, register value/coil quantity 3, byte array {1,0,1}, click “Add” button. Finally, scroll to the bottom of the page and click “Apply” button (Figure 2-18).

../_images/357.png

Figure 9.30-18 Writing Multiple Coils

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Master instruction to write multiple digital outputs. Switch the robot to automatic mode and click the start button. The robot will write the values 1, 0, 1 to the coil registers starting at address 0x1000.

../_images/358.png

Figure 9.30-19 LUA Program for Writing Multiple Coils

9.30.2.4.3. Read Coils and Discrete Inputs

Select “Read Register Instruction”, function code 0x01-Coils (select 0x02-Discrete Inputs if reading discrete inputs), register/coil address 0x2000, register/coil quantity 3, click “Add” button. Then select “Read Register Data”, register/coil/discrete input quantity 3, click “Add” button. Finally, scroll to the bottom of the page and click “Apply” button (Figure 2-20).

../_images/359.png ../_images/394.png

Figure 9.30-20 Reading Coils

Now the robot program “testModbusRTUSlave.lua” has added two robot Modbus Master instructions to read coils.

../_images/360.png

Figure 9.30-21 Program for Reading a Single Coil

Usually, after reading Modbus registers, the read values are stored in variables. Therefore, you need to define variables to store the read values. Click the “Switch Mode” button to switch the robot LUA program to editable mode. Before the “ModbusRegRead” instruction, add return value variables “value1”, “value2”, “value3”. After executing the program, the read values will be stored in “value1”, “value2”, and “value3”.

../_images/361.png

Figure 9.30-22 Storing Multiple Coil Values in Variables

Coil and discrete input type register values are only 0 or 1. In the robot program, you can perform different operations by judging different register values.

9.30.2.4.4. Read Holding Registers and Input Registers

Select “Read Register Instruction”, function code 0x03-Holding Registers (select 0x04-Input Registers if reading input registers), register/coil address 0x4000, register/coil quantity 5, click “Add” button. Then select “Read Register Data”, register/coil/discrete input quantity 5, click “Add” button. Finally, scroll to the bottom of the page and click “Apply” button (Figure 2-23).

../_images/362.png ../_images/395.png

Figure 9.30-23 Reading Holding Registers

Now the robot program “testModbusRTUSlave.lua” has added two robot Modbus Master instructions to read coils.

../_images/363.png

Figure 9.30-24 Program for Reading a Single Coil

Usually, after reading Modbus registers, the read values are stored in variables. Therefore, you need to define variables to store the read values. Click the “Switch Mode” button to switch the robot LUA program to editable mode. Before the “ModbusRegRead” instruction, add return value variables “value1”, “value2”, “value3”, “value4”, “value5”. After executing the program, the read values will be stored in these variables.

../_images/364.png

Figure 9.30-25 Storing Multiple Holding Register Values in Variables

9.30.3. Robot ModbusRTU Slave Operation Instructions

The robot ModbusRTU Slave provides four types of registers: general-purpose digital inputs (coils), general-purpose digital outputs (discrete inputs), general-purpose analog inputs (holding registers), and general-purpose analog outputs (input registers). The general-purpose digital inputs and analog inputs are mainly used for the robot to read data from external ModbusRTU Master devices to control robot operations. The general-purpose digital outputs and analog outputs are mainly used for the robot to send data signals to external ModbusRTU Master devices, which read the relevant register values to control their device operations.

In addition to the above general-purpose inputs and outputs, the robot also provides some “functional digital inputs (coils)” for external master devices to control robot operations such as starting programs and stopping programs. Some input registers are dedicated to displaying the current robot status information, including the robot’s current Cartesian position and operation status (see Appendix 1: ModbusRTU Slave Address Mapping Table for specific definitions). The robot ModbusRTU Slave only supports connection with one master. The process of using the robot ModbusRTU Slave mainly includes: ① Parameter configuration; ② Communication test; ③ Program writing.

9.30.3.1. ModbusRTU Slave Communication Parameter Configuration

Open WebApp, click “Teach Simulation” and “Program Teaching” in sequence, and create a new user program “testModbusRTUSlave.lua”.

../_images/365.png

Figure 9.30-26 Creating a ModbusRTU Slave User Program

Click the “ModbusRTU Settings” button to open the ModbusRTU configuration page.

../_images/366.png

Figure 9.30-27 Opening ModbusRTU Settings

Click “Slave Settings” and enter the robot slave’s baud rate, data bits, parity, stop bits, and slave number. “Baud Rate”, “Data Bits”, “Parity”, and “Stop Bits” are the parameter configurations for the robot as a ModbusRTU Slave. “Slave Number” is the slave device number in the instructions sent by the external master.

../_images/367.png

Figure 9.30-28 ModbusRTU Slave Settings

9.30.3.2. ModbusRTU Slave Communication Test

9.30.3.2.1. General-Purpose Digital Inputs (Coils)

The robot ModbusRTU Slave provides 64 coil registers with addresses 0x4000~0x403F (see Appendix 1: ModbusRTU Slave Address Mapping Table for specific definitions). The general-purpose registers of the robot ModbusRTU Slave can be aliased. Change the name of the robot slave coil register DI0 to “A Ready” and DI1 to “B Ready”. According to the address mapping table, the Modbus coil addresses for “A Ready” and “B Ready” are 0x4000 and 0x4001, respectively. On the external ModbusRTU Master device, set the robot slave coil register addresses 0x4000 and 0x4001 to 1. The indicator lights for these two registers on the robot ModbusRTU Slave monitoring page will light up.

../_images/368.png

Figure 9.30-29 ModbusRTU Slave Coil Status Monitoring (Command Frame Screenshot)

9.30.3.2.2. General-Purpose Digital Outputs (Discrete Inputs)

The robot ModbusRTU Slave provides 64 discrete input registers with addresses 0x3000-0x303F (see Appendix 1: ModbusRTU Slave Address Mapping Table for specific definitions). Similarly, the discrete input registers of the robot ModbusRTU Slave can also be aliased. Click “General-Purpose Digital Outputs (Discrete Inputs)” to change the name of the robot slave discrete input register DO0 to “A Start” and DO1 to “B Start”. According to the address mapping table, the Modbus discrete input addresses for “A Start” and “B Start” are 0x3000 and 0x3001, respectively. Click the indicator light corresponding to “A Start”. The light will turn on, and the value of the corresponding register address 0x3000 will change to 1. The external ModbusRTU Master device can read this register value.

../_images/369.png

Figure 9.30-30 ModbusRTU Slave Discrete Input Control

9.30.3.2.3. Analog Inputs (Holding Registers)

The robot provides three types of holding registers: unsigned, signed, and floating-point, totaling 32. The addresses for AI0~AI32 are 0x2000-0x202F (see Appendix 1: ModbusRTU Slave Address Mapping Table for specific definitions). The data range for signed registers is -32768~32767, and floating-point registers are displayed in big-endian format. Change the names of AI0 and AI1 to “Voltage” and “Current”, respectively. From the ModbusRTU Slave address mapping table, the addresses of these two registers are 0x2000 and 0x2001, respectively. Therefore, when the connected master device modifies the values of holding register addresses 0x2000 and 0x2001, the “Voltage” and “Current” register address values on the robot ModbusRTU Slave monitoring page will update accordingly. The robot’s analog inputs are mainly used for the robot to obtain numerical signals from external master devices.

../_images/370.png

Figure 9.30-31 ModbusRTU Slave Analog Input Monitoring (Command Frame Screenshot)

9.30.3.2.4. Analog Outputs (Input Registers)

The robot provides three types of input registers: unsigned, signed, and floating-point, totaling 64. The addresses for AO0~AO63 are 0x1000-0x100F, 0x104D-0x106C (see Appendix 1: ModbusRTU Slave Address Mapping Table for specific definitions). The data range for signed registers is -32768~32767, and floating-point registers are displayed in big-endian format. Change the names of AO0 and AO1 to “Target Position A” and “Target Position B”, respectively, with input register values of 2000 and 1500. From the ModbusRTU Slave address mapping table, the addresses of these two registers are 0x1000 and 0x1001, respectively. Therefore, when the connected master device reads the input register addresses 0x1000 and 0x1001, it will obtain the set values. The robot slave analog outputs are mainly used for the robot to send numerical signals to external master devices.

../_images/371.png

Figure 9.30-32 Modbus Slave Modifying Analog Inputs

9.30.3.3. Writing a ModbusRTU Slave Program

Click “All” and then “Communication Instructions” to open the communication instruction addition page.

../_images/372.png

Figure 9.30-33 Opening the Communication Instruction Addition Page

Click “Modbus”.

../_images/373.png

Figure 9.30-34 Selecting Modbus

Click “Modbus_RTU”, select “Slave”, to open the ModbusRTU Slave instruction addition page (Figure 60).

../_images/374.png

Figure 9.30-35 Selecting Modbus_RTU, Slave

9.30.3.3.1. Write Single Digital Output DO (Discrete Input)

Select DO name as “A Start”, register quantity as 1, register value as 0, click “Write Single Digital Output”. Finally, scroll to the bottom of the page and click “Apply” button.

../_images/375.png

Figure 9.30-36 Adding a Write Single Digital Output Instruction, Applying the Write Single Digital Output Instruction

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Slave instruction to write a single digital output. Switch the robot to automatic mode and click the start button. The robot will write the value 0 to the digital output named “A Start”.

../_images/376.png

Figure 9.30-37 LUA Program for Writing a Single Digital Output

9.30.3.3.2. Write Multiple Digital Outputs DO (Discrete Inputs)

Open the ModbusRTU Slave instruction addition page, find “Digital Output Settings”, select DO name as “A Start”, register quantity as 5, register value as 1,0,1,0,1. The number of register values must match the set register quantity, and multiple register values should be separated by English commas. Click “Write Digital Output”. Finally, scroll to the bottom of the page and click “Apply” button.

../_images/377.png

Figure 9.30-38 Configuring Write Multiple Digital Outputs, Applying Write Multiple Digital Outputs

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Slave instruction to write multiple digital outputs. Switch the robot to automatic mode and click the start button. The robot will write the values 1, 0, 1, 0, 1 to the discrete input registers starting from “A Start” and the next four.

../_images/378.png

Figure 9.30-39 LUA Program for Writing Multiple Digital Outputs

9.30.3.3.3. Read Single Digital Output DO (Discrete Input)

Open the ModbusRTU Master instruction addition page, find “Digital Output Settings”, DO name as “A Start”, register quantity as 1, register value does not need to be filled, click “Read Digital Output”. Finally, scroll to the bottom of the page and click “Apply” button.

../_images/379.png

Figure 9.30-40 Configuring Read Single Digital Output, Applying Read Single Digital Output

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Slave instruction to read a single digital output.

../_images/380.png

Figure 9.30-41 Program for Reading a Single Digital Output

Usually, after reading Modbus registers, the read values are stored in variables. Therefore, you need to define a variable to store the read value. Click the “Switch Mode” button to switch the robot LUA program to editable mode. Before the “ModbusSlaveReadDO_RTU” instruction, add a return value variable “AStartValue”. After executing the program, the read value will be stored in “AStartValue”.

../_images/381.png

Figure 9.30-42 Storing a Single Digital Output Read in a Variable

Coil-type register values are only 0 or 1. In the robot program, you can perform different operations by judging different register values.

9.30.3.3.4. Read Multiple Digital Outputs DO (Discrete Inputs)

Open the ModbusRTU Master instruction addition page, find “Digital Output Settings”, select DO name as “A Start”, register quantity as 2, register value does not need to be filled, click “Read Digital Output”. Finally, scroll to the bottom of the page and click “Apply” button.

../_images/382.png

Figure 9.30-43 Configuring Read Multiple Digital Outputs, Applying Read Multiple Digital Outputs

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Slave instruction to read multiple digital outputs.

../_images/383.png

Figure 9.30-44 Program for Reading Multiple Digital Outputs

Click the “Switch Mode” button to switch the robot LUA program to editable mode. Since the read quantity is 2, you need to add two return value variables “value1,value2” before the “ModbusSlaveReadDO_RTU” instruction. After executing the program, the two digital output register values will be stored in these two variables. Similarly, you can judge the values of “value1” and “value2” to make the robot perform different actions.

../_images/384.png

Figure 9.30-45 Storing Multiple Digital Output Reads in Variables

9.30.3.3.5. Read Digital Input DI (Coils)

Open the ModbusRTU Slave instruction addition page, find “Digital Input Settings”, select DI name as “A Ready”, register quantity as 2, click “Read Digital Input”. Finally, scroll to the bottom of the page and click “Apply” button.

../_images/385.png

Figure 9.30-46 Configuring Read Digital Input, Applying Read Digital Input

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Slave instruction to read digital inputs.

../_images/386.png

Figure 9.30-47 Program Instruction for Reading Digital Inputs

Click the “Switch Mode” button to switch the robot LUA program to editable mode. Before the “ModbusSlaveReadDI_RTU” instruction, add return value variables “AState,BState”. After executing the program, the two digital input values will be stored in variables “AState” and “BState”, respectively. You can control the robot to perform different operations by judging the variable values.

../_images/387.png

Figure 9.30-48 Program for Reading Digital Inputs

9.30.3.3.6. Read/Write Operations for Analog Output AO (Input Registers) and Analog Input AI (Holding Registers)

The read/write operations for analog outputs (input registers) and analog inputs (holding registers) are basically the same as those for digital outputs (discrete inputs) and digital inputs (coils). The difference is that the data range of the latter is limited to 0 or 1, while the former has a larger data range. Therefore, specific operations can refer to the writing of digital output and digital input programs. Here, only the program examples for reading analog inputs (Figure 3-24) and reading/writing analog outputs (Figure 3-25) are shown.

../_images/388.png

Figure 9.30-49 Reading Analog Inputs

../_images/389.png

Figure 9.30-50 Reading/Writing Analog Outputs

9.30.3.3.7. Wait for Digital Input

Open the ModbusRTU Slave instruction addition page, find “Wait for Digital Input Settings”, select DI name as the configured “A Ready” register, wait state as “True”, timeout as 5000ms. Click “Add” button, then click “Apply” button.

../_images/390.png

Figure 9.30-51 Adding a Wait for Digital Input Instruction

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Slave instruction to wait for a digital input. After starting the program, the robot will wait for the “A Ready” coil register value of the slave to become true (value 1). Since the timeout is set to 5s, if the “A Ready” signal is still 0 after 5s, the robot program will report a timeout error and automatically stop running.

../_images/391.png

Figure 9.30-52 Program for Waiting for Digital Input

9.30.3.3.8. Wait for Analog Input

Open the ModbusRTU Slave instruction addition page, find “Wait for Analog Input Settings”, select AI name as the configured “Current” register, wait state as “>”, register value as 255, timeout as 5000ms. Click “Add” button, then click “Apply” button.

../_images/392.png

Figure 9.30-53 Adding a Wait for Analog Input Instruction

Now the robot program “testModbusRTUSlave.lua” has added a robot Modbus Slave instruction to wait for an analog input value. After starting the program, the robot will wait for the “Current” register value of the slave to be greater than 255. Since the timeout is set to 5s, if the “Current” signal is still not greater than 255 after 5s, the robot program will report a timeout error and automatically stop running.

../_images/393.png

Figure 9.30-54 Program for Waiting for Analog Input Register

Open the ModbusRTU Slave command addition page, find the “Wait for Analog Input Setting” (i.e., wait for AI input register setting). Select the AI name as the configured “Liquid Level” register, set the wait condition to “=”, the register value to 255, and the timeout to 5000ms. Click the “Add” button, and finally click the “Apply” button.

../_images/496.png

Figure 9.30-54-2 Add Wait for Analog Input

At this point, a Modbus RTU Slave command to wait for the AI input register value has been added to the robot program “test.lua”. After starting the program, the robot will continuously wait for the “Liquid Level” register value to equal 255. Since the timeout is set to 5s, if the “Liquid Level” signal still does not equal 255 after the robot waits for 5 seconds, the robot program will report a timeout error and automatically stop running.

9.30.3.4. Robot Status Feedback and Control via ModbusRTU Slave

The input register addresses 0x1010-0x104C of the collaborative robot ModbusRTU Slave are used to feedback real-time robot status (see Appendix 1: ModbusRTU Slave Address Mapping Table for specific address definitions). You only need to read the corresponding register values with the master device to obtain the corresponding real-time robot status data.

The coil register addresses 0x4040-0x405C of the collaborative robot ModbusRTU Slave are used for the master device to control the robot (see Appendix 1: ModbusRTU Slave Address Mapping Table for specific address definitions). Take coil address 0x4054 as an example. This address function is “Start Program”. When the robot is in automatic mode, the master device changes the value of address 0x4054 from 0 to 1, and the robot automatically starts running the currently configured program. Another example is coil address 0x4040, which is used to control the output of control box DO0. When the external master changes the coil address 0x4040 from 0 to 1, the control box DO0 automatically outputs effectively. Similarly, when the external master changes the coil address 0x4040 from 1 to 0, the control box DO0 output becomes invalid. On the ModbusRTU Slave settings page, click “Functional Digital Inputs (Coils)” to monitor all current functional digital inputs.

../_images/396.png

Figure 9.30-55 Digital input of the robot slave function

Attachment 1: Modbus Slave Address Mapping Table

Third-party Controller Address

Type

Name

Data Type

Function Code

R/W

0x3000

General Digital Output (Discrete)

DO0

BOOL

0x02

Read Only

0x3001

General Digital Output (Discrete)

DO1

BOOL

0x02

Read Only

0x3002

General Digital Output (Discrete)

DO2

BOOL

0x02

Read Only

0x3003

General Digital Output (Discrete)

DO3

BOOL

0x02

Read Only

General Digital Output (Discrete)

BOOL

0x02

Read Only

0x303F

General Digital Output (Discrete)

DO127

BOOL

0x02

Read Only

0x4000

General Digital Input (Coil)

DI0

BOOL

0x01, 0x05, 0x0F

R/W

0x4001

General Digital Input (Coil)

DI1

BOOL

0x01, 0x05, 0x0F

R/W

0x4002

General Digital Input (Coil)

DI2

BOOL

0x01, 0x05, 0x0F

R/W

0x4003

General Digital Input (Coil)

DI3

BOOL

0x01, 0x05, 0x0F

R/W

General Digital Input (Coil)

BOOL

0x01, 0x05, 0x0F

R/W

0x403F

General Digital Input (Coil)

DI64

BOOL

0x01, 0x05, 0x0F

R/W

0x4040

Robot Control

Control Box DO0

BOOL

0x01, 0x05, 0x0F

R/W

0x4041

Robot Control

Control Box DO1

BOOL

0x01, 0x05, 0x0F

R/W

0x4042

Robot Control

Control Box DO2

BOOL

0x01, 0x05, 0x0F

R/W

0x4043

Robot Control

Control Box DO3

BOOL

0x01, 0x05, 0x0F

R/W

0x4044

Robot Control

Control Box DO4

BOOL

0x01, 0x05, 0x0F

R/W

0x4045

Robot Control

Control Box DO5

BOOL

0x01, 0x05, 0x0F

R/W

0x4046

Robot Control

Control Box DO6

BOOL

0x01, 0x05, 0x0F

R/W

0x4047

Robot Control

Control Box DO7

BOOL

0x01, 0x05, 0x0F

R/W

0x4048

Robot Control

Control Box CO0

BOOL

0x01, 0x05, 0x0F

R/W

0x4049

Robot Control

Control Box CO1

BOOL

0x01, 0x05, 0x0F

R/W

0x404A

Robot Control

Control Box CO2

BOOL

0x01, 0x05, 0x0F

R/W

0x404B

Robot Control

Control Box CO3

BOOL

0x01, 0x05, 0x0F

R/W

0x404C

Robot Control

Control Box CO4

BOOL

0x01, 0x05, 0x0F

R/W

0x404D

Robot Control

Control Box CO5

BOOL

0x01, 0x05, 0x0F

R/W

0x404E

Robot Control

Control Box CO6

BOOL

0x01, 0x05, 0x0F

R/W

0x404F

Robot Control

Control Box CO7

BOOL

0x01, 0x05, 0x0F

R/W

0x4050

Robot Control

Tool DO0

BOOL

0x01, 0x05, 0x0F

R/W

0x4051

Robot Control

Tool DO1

BOOL

0x01, 0x05, 0x0F

R/W

0x4052

Robot Control

Pause

BOOL

0x01, 0x05, 0x0F

R/W

0x4053

Robot Control

Resume

BOOL

0x01, 0x05, 0x0F

R/W

0x4054

Robot Control

Start

BOOL

0x01, 0x05, 0x0F

R/W

0x4055

Robot Control

Stop

BOOL

0x01, 0x05, 0x0F

R/W

0x4056

Robot Control

Move to Home Position

BOOL

0x01, 0x05, 0x0F

R/W

0x4057

Robot Control

Manual/Auto Toggle

BOOL

0x01, 0x05, 0x0F

R/W

0x4058

Robot Control

Start Main Program

BOOL

0x01, 0x05, 0x0F

R/W

0x4059

Robot Control

Level 1 Reduction Mode

BOOL

0x01, 0x05, 0x0F

R/W

0x405A

Robot Control

Level 2 Reduction Mode

BOOL

0x01, 0x05, 0x0F

R/W

0x405B

Robot Control

Level 3 Reduction Mode (Stop)

BOOL

0x01, 0x05, 0x0F

R/W

0x405C

Robot Control

Clear All Faults

BOOL

0x01, 0x05, 0x0F

R/W

0x405D

Robot Control

Reserved

BOOL

0x01, 0x05, 0x0F

R/W

0x405E

Robot Control

Reserved

BOOL

0x01, 0x05, 0x0F

R/W

0x1000

Analog Input

AO0

INT16

0x04

Read Only

0x1001

Analog Input

AO1

INT16

0x04

Read Only

0x1002

Analog Input

AO2

INT16

0x04

Read Only

Analog Input

INT16

0x04

Read Only

0x100F

Analog Input

AO15

INT16

0x04

Read Only

0x1010

Robot Status

Enable Status (0-Disabled, 1-Enabled)

UINT16

0x04

Read Only

0x1011

Robot Status

Robot Mode (1-Manual, 0-Auto)

UINT16

0x04

Read Only

0x1012

Robot Status

Robot Operation Status (1-Stop, 2-Running, 3-Paused, 4-Dragging)

UINT16

0x04

Read Only

0x1013

Robot Status

Tool Number

UINT16

0x04

Read Only

0x1014

Robot Status

Workpiece Number

UINT16

0x04

Read Only

0x1015

Robot Status

Emergency Stop Status (0-Normal, 1-Emergency Stop)

UINT16

0x04

Read Only

0x1016

Robot Status

Soft Limit Fault

UINT16

0x04

Read Only

0x1017

Robot Status

Main Fault Code

UINT16

0x04

Read Only

0x1018

Robot Status

Sub Fault Code

UINT16

0x04

Read Only

0x1019

Robot Status

Collision Detection (1-Collision, 0-No Collision)

UINT16

0x04

Read Only

0x101A

Robot Status

Motion Completion Signal

UINT16

0x04

Read Only

0x101B

Robot Status

Safety Stop Signal SI0

UINT16

0x04

Read Only

0x101C

Robot Status

Safety Stop Signal SI1

UINT16

0x04

Read Only

0x101D

Robot Status

Control Box Analog Input AI0

UINT16

0x04

Read Only

0x101E

Robot Status

Control Box Analog Input AI1

UINT16

0x04

Read Only

0x101F

Robot Status

Tool Analog Input AI0

UINT16

0x04

Read Only

0x1020

Robot Status

Control Box Analog Output AO0

UINT16

0x04

Read Only

0x1021

Robot Status

Control Box Analog Output AO1

UINT16

0x04

Read Only

0x1022

Robot Status

Tool Analog Output AO0

UINT16

0x04

Read Only

0x1023

Robot Status

Control Box Digital Input (Bit0-Bit7: DI0-DI7, Bit8-Bit15: CI0-CI7)

UINT16

0x04

Read Only

0x1024

Robot Status

Tool Digital Input (Bit0-Bit15: DI0-DI15)

UINT16

0x04

Read Only

0x1025

Robot Status

Control Box Digital Output (Bit0-Bit7: DO0-DO7, Bit8-Bit15: CO0-CO7)

UINT16

0x04

Read Only

0x1026

Robot Status

Tool Digital Output (Bit0-Bit15: DO0-DO15)

UINT16

0x04

Read Only

0x1027

Robot Status

TCP Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x1028

Robot Status

TCP Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x1029

Robot Status

Joint 1 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x102A

Robot Status

Joint 1 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x102B

Robot Status

Joint 2 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x102C

Robot Status

Joint 2 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x102D

Robot Status

Joint 3 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x102E

Robot Status

Joint 3 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x102F

Robot Status

Joint 4 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x1030

Robot Status

Joint 4 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x1031

Robot Status

Joint 5 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x1032

Robot Status

Joint 5 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x1033

Robot Status

Joint 6 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x1034

Robot Status

Joint 6 Position

FLOAT32 (Big Endian)

0x04

Read Only

0x1035

Robot Status

Joint 1 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x1036

Robot Status

Joint 1 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x1037

Robot Status

Joint 2 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x1038

Robot Status

Joint 2 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x1039

Robot Status

Joint 3 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x103A

Robot Status

Joint 3 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x103B

Robot Status

Joint 4 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x103C

Robot Status

Joint 4 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x103D

Robot Status

Joint 5 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x103E

Robot Status

Joint 5 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x103F

Robot Status

Joint 6 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x1040

Robot Status

Joint 6 Speed

FLOAT32 (Big Endian)

0x04

Read Only

0x1041

Robot Status

TCP Position X

FLOAT32 (Big Endian)

0x04

Read Only

0x1042

Robot Status

TCP Position X

FLOAT32 (Big Endian)

0x04

Read Only

0x1043

Robot Status

TCP Position Y

FLOAT32 (Big Endian)

0x04

Read Only

0x1044

Robot Status

TCP Position Y

FLOAT32 (Big Endian)

0x04

Read Only

0x1045

Robot Status

TCP Position Z

FLOAT32 (Big Endian)

0x04

Read Only

0x1046

Robot Status

TCP Position Z

FLOAT32 (Big Endian)

0x04

Read Only

0x1047

Robot Status

TCP Position RX

FLOAT32 (Big Endian)

0x04

Read Only

0x1048

Robot Status

TCP Position RX

FLOAT32 (Big Endian)

0x04

Read Only

0x1049

Robot Status

TCP Position RY

FLOAT32 (Big Endian)

0x04

Read Only

0x104A

Robot Status

TCP Position RY

FLOAT32 (Big Endian)

0x04

Read Only

0x104B

Robot Status

TCP Position RZ

FLOAT32 (Big Endian)

0x04

Read Only

0x104C

Robot Status

TCP Position RZ

FLOAT32 (Big Endian)

0x04

Read Only

0x104D

Analog Input

AO16

FLOAT32 (Big Endian)

0x04

Read Only

0x104E

Analog Input

AO16

FLOAT32 (Big Endian)

0x04

Read Only

0x104F

Analog Input

AO17

FLOAT32 (Big Endian)

0x04

Read Only

0x1050

Analog Input

AO17

FLOAT32 (Big Endian)

0x04

Read Only

Analog Input

FLOAT32 (Big Endian)

0x04

Read Only

0x106B

Analog Input

AO31

FLOAT32 (Big Endian)

0x04

Read Only

0x106C

Analog Input

AO31

FLOAT32 (Big Endian)

0x04

Read Only

0x2000

Analog Output

AI0

INT16

0x03, 0x06, 0x10

R/W

0x2001

Analog Output

AI1

INT16

0x03, 0x06, 0x10

R/W

0x2002

Analog Output

AI2

INT16

0x03, 0x06, 0x10

R/W

Analog Output

INT16

0x03, 0x06, 0x10

R/W

0x200F

Analog Output

AI15

INT16

0x03, 0x06, 0x10

R/W

0x2010

Analog Output

AI16

FLOAT32 (Big Endian)

0x03, 0x06, 0x10

R/W

0x2011

Analog Output

AI16

FLOAT32 (Big Endian)

0x03, 0x06, 0x10

R/W

0x2012

Analog Output

AI17

FLOAT32 (Big Endian)

0x03, 0x06, 0x10

R/W

0x2013

Analog Output

AI17

FLOAT32 (Big Endian)

0x03, 0x06, 0x10

R/W

Analog Output

FLOAT32 (Big Endian)

0x03, 0x06, 0x10

R/W

0x202E

Analog Output

AI31

FLOAT32 (Big Endian)

0x03, 0x06, 0x10

R/W

0x202F

Analog Output

AI31

FLOAT32 (Big Endian)

0x03, 0x06, 0x10

R/W

9.31. Protection Based on 6-Axis Force Sensor Posture Compliance Function

9.31.1. Overview

Current FR robots have no maximum adjustment angle limit in posture compliance function under constant force FT_Control. When the 6-axis force sensor receives external torque, the robot end will continuously deviate, which may cause hazards.

This enhancement adds maximum adjustment angle limit on top of the FT_Control posture compliance function, allowing custom threshold setting to make posture compliance smoother.

9.31.2. Operation Procedure

Step1: Click “Initial Setup”->”Basic”->”Coordinate System”->”Tool” to enter the tool coordinate system setup interface. Select “Coordinate System Name” and configure parameters for the end tool coordinate system.

../_images/443.png

Figure 9.31-1 Tool Coordinate System Setup

Step2: Click “Teach Programming”->”Program Editing” to write constant force control Lua script. Select “Force Control Set”->”Control”, add force control motion command, set “Posture Compliance” to ON, and configure maximum adjustment angle as the threshold.

../_images/444.png

Figure 9.31-2 Force Control Motion Command

Step3: On web interface click “FT” to set 6-axis force sensor reference coordinate system. Select reference coordinate system as “Custom Coordinate System” and configure corresponding parameters. When posture compliance adjusts around tool coordinate system, set reference coordinate parameters to “0”; when adjusting around end flange coordinate system, set parameters to match the end tool coordinate system.

../_images/445.png

Figure 9.31-3 Setting 6-Axis Force Sensor Reference Coordinate System

Step4: Run the script to observe posture compliance effect. The adjustment angle under constant force will be limited within the custom maximum adjustment angle range.

9.32. Socket Communication Interface Function

9.32.1. Socket Configuration

When using the Socket communication interface function, after the robot is powered on, you need to first access the web page to configure the Socket protocol. The configuration is saved after power-off.

Click “Teach Program” - “Program Editing”, then click “Socket Network Debugging” in the upper right menu bar to enter the Socket configuration interface. Click “Add Socket” to configure Socket parameters. Up to four Sockets can be added.

../_images/446.png

Figure 9.32-1 Socket Network Debugging Interface

../_images/447.png

Figure 9.32-2 Socket Configuration Parameters Interface

9.32.1.1. Communication Parameter Settings

The communication protocol supports UDP, TCP server, and TCP client.

Data types support both ASCII and HEX. After configuring the data type, all data transmission and reception for that Socket connection will be processed according to the configured type.

9.32.1.2. Heartbeat Detection Mechanism

The heartbeat detection mechanism is only applicable to TCP server and TCP client.

The heartbeat detection mechanism uses the Keepalive mechanism to detect and maintain the active state of the connection, preventing accidental interruption of long-idle connections. It mainly includes the following parameters:

  • Probe interval: How long to wait before sending keepalive probe packets (in seconds);

  • Probe time: Interval between probe packets (in seconds);

  • Probe count: Maximum number of probe packets to send.

9.32.1.3. Reconnection Mechanism

The reconnection mechanism is only applicable to TCP client.

When the reconnection mechanism is enabled and the TCP client detects a server disconnection upon startup, it will actively attempt to reconnect. If the connection cannot be established after reaching the maximum reconnection attempts, the connection will be dropped. It mainly includes the following parameters:

  • Reconnection interval: Reconnection interval time (in ms, recommended to be in seconds);

  • Maximum reconnection attempts: Maximum number of reconnection attempts.

9.32.1.4. Custom Protocol Parsing

When custom protocol parsing is enabled, the transmitted and received data will be encapsulated or parsed according to the protocol configuration.

Custom protocols can be automatically generated based on configuration parameters. In ASCII mode, frame header, frame count, data length, and frame tail combinations are supported. Delimiters can be used for data segmentation. In HEX mode, frame header, frame count, data length, checksum method, and frame tail combinations are supported.

../_images/448.png

Figure 9.32-3 ASCII Mode Custom Protocol Configuration

../_images/449.png

Figure 9.32-4 HEX Mode Custom Protocol Configuration

After configuring the custom protocol, click the “Generate” button to automatically generate the corresponding Lua file. The Lua file supports import and export functions. The protocol type can be flexibly configured by modifying the file code.

9.32.2. Socket Connection

9.32.2.1. Interface Connection Display

After configuring Socket information, the Socket connection can be established. The connection status includes the following three states:

  • White: Connection not established.

../_images/450.png

Figure 9.32-5 Disconnected State

  • Yellow: TCP server waiting for connection or TCP client requesting connection.

../_images/451.png

Figure 9.32-6 Waiting for Connection State

  • Green: Connection successful.

../_images/452.png

Figure 9.32-7 Connected State

9.32.2.2. Connection Command Module

Click “Teach Program” - “Program Editing” - “Communication Commands”, select “Socket” command to generate commands for opening and closing Socket connections for Lua programming. SocketID can only select already configured Socket connections.

../_images/453.png

Figure 9.32-8 Socket Connection Command Module

Command details:

  • Open connection command: OpenSockeConnect(id);

  • Parameter id: Pre-configured socket ID, return value 0 for success;

  • Close connection command: CloseSockeConnect(id);

  • Parameter id: Pre-configured socket ID, return value 0 for success.

9.32.3. Socket Communication

9.32.3.1. Communication Testing

The interface provides communication testing for data transmission and reception testing, as shown in Figure 3-1 below.

../_images/454.png

Figure 9.32-9 Communication Testing

The interface sends data in blocking mode by default, waiting for motion completion before sending data. The default data reception timeout is 5 seconds, after which an error will be reported and stopped. These parameters can be adjusted when issuing commands.

9.32.3.2. Communication Command Module

Click “Teach Program” - “Program Editing” - “Communication Commands”, select “Socket” command to generate Socket communication commands for data transmission and reception in Lua programming. SocketID can only select already configured Socket connections for sending data.

../_images/455.png

Figure 9.32-10 Sending Socket Data

Command parameters are Socket ID, data to send, and whether to wait for motion completion.

Command details:

  • Send command: SocketSend(id,data,block);

  • Parameters: id, connected socket ID; data: data to send (string format), content must match the configured data type, such as “hello” or “FA54DE”; block: whether to block motion (0: wait for motion completion before sending, 1: send immediately). Return value 0 for success.

Receiving data is shown below.

../_images/456.png

Figure 9.32-11 Receiving Socket Data

Command parameters are Socket ID, reception timeout (in milliseconds), and post-timeout strategy.

Command details:

  • Receive command: SocketReceive(id,timeout,stopStartegy);

  • Parameters: id, connected socket ID; timeout: reception timeout; stopStartegy: post-timeout strategy (0: report error and stop after timeout, 1: continue running after timeout);

  • Return values: time: reception time, data: received data.

9.33. Impedance Control Function During Robot Motion

9.33.1. Overview

The impedance control function enables real-time detection of external forces. When the set threshold is reached, it actively complies with the external force, deviates from the motion trajectory, and returns to the motion trajectory after the external force drops below the threshold, thereby achieving better human-robot interaction. When an external force exceeding the preset force threshold is detected, this function drives the robotic arm to generate an offset in the direction of the force, achieving an active avoidance effect. After the external force is removed, the robotic arm returns to the vicinity of the original motion trajectory, thus enhancing safety during human-robot collaboration.

9.33.2. Impedance Control Function

9.33.2.1. Impedance Control Configuration and Function Start/Stop in Cartesian Space

Step1: Log in to the web interface, sequentially click “Initial Settings” → “Basic” → “Joints” → “Collision Level” to enter the robot collision level setting module, and set a reasonable collision coefficient, as shown in Figure 2-1.

../_images/473.png

Figure 9.33-1 Robot Collision Coefficient Setting Module

Step2: To use a force sensor to implement the impedance control function, the force sensor must be configured in the end effector peripheral configuration under “Peripherals” → “End Effector”. If choosing not to use a force sensor to implement the impedance control function, this step is not required.

Step3: Sequentially click “Teach Program” → “Program Programming” → “Force Control Set”, and add the “Impedance” command. The “Impedance” command enables the robot to implement impedance control on the running trajectory (Currently, only impedance control in Cartesian space is available).

../_images/474.png

Figure 9.33-2 Adding Force Control Command

Step4: In the force control command module, select “Cartesian Space” from the space selection dropdown menu. Set appropriate values in the text boxes for force threshold, mass coefficient, damping coefficient, stiffness coefficient, maximum linear velocity, maximum linear acceleration, maximum angular velocity, and maximum angular acceleration. Click “Enable” under command type, then click “Add” to add the impedance control enable command; click “Disable” under command type, then click “Add” to add the impedance control disable command.

../_images/475.png

Figure 9.33-3 Impedance Control Command Example

Step5: During operation, if the robotic arm stops running and the lower left corner of the Web interface displays “500 Error: Current collision level is too low”, this is because the set force threshold is greater than the trigger threshold of the collision level. At this point, increasing the collision level or decreasing the force threshold will resolve this error.

../_images/476.png

Figure 9.33-4 Collision Level Too Low Warning

Step6: During operation, if the robotic arm stops running and the lower right corner of the Web interface displays “Collision Fault”, this is because the external force on the robotic arm has exceeded the trigger threshold of the collision level, thereby triggering a collision fault.

../_images/477.png

Figure 9.33-5 Collision Fault Warning

Specific Functions and Recommended Values of Parameters:

  • Space Selection: Sets the operational space for impedance control. Currently, only Cartesian space impedance control is available.

  • Force Threshold: The minimum trigger force for impedance control. The range for the translational direction force threshold is 30–150N, and for the rotational direction force threshold is 7–30Nm.

  • Mass Coefficient: Increasing the mass coefficient will cause the offset to be slower, decreasing it will cause the robot offset to be too fast. The range for the translational direction is [0.01-1], recommended value is 0.04; the range for the rotational direction is [0.001-1], recommended value is 0.01.

  • Damping Coefficient: Increasing the damping coefficient will cause the offset to be slower, decreasing it will cause the robot offset to be too fast, resulting in oscillation. The range for the translational direction is [0.1-2], recommended value is 0.1; the range for the rotational direction is [0.008-1.5], recommended value is 0.08.

  • Stiffness Coefficient: Increasing the stiffness coefficient will cause the offset to be slower. Recommended value is 0.

  • Maximum Linear Velocity: Limits the velocity generated by external forces in the translational direction. Recommended value is 250mm/s.

  • Maximum Linear Acceleration: Limits the acceleration generated by external forces in the translational direction. Recommended value is 500mm/s².

  • Maximum Angular Velocity: Limits the angular velocity generated by external forces in the rotational direction. Recommended value is 90°/s.

  • Maximum Angular Acceleration: Limits the angular acceleration generated by external forces in the rotational direction. Recommended value is 180°/s².

9.33.2.2. Impedance Control Setting and Function Start/Stop in Joint Space

Step1: Log in to the web interface, click sequentially “Initial Settings” → “Basic” → “Joints” → “Collision Level” to enter the robot collision level setting module, and set a reasonable collision coefficient.

../_images/555.png

Figure 9.34-6 Robot Collision Coefficient Setting Module

Step2: Click sequentially “Teaching Program” → “Program Programming” → “Force Control Set”, and add the “Impedance” instruction. The “Impedance” instruction enables the robot to achieve impedance control along the running trajectory.

../_images/556.png

Figure 9.34-7 Adding Force Control Instruction

Step3: In the force control instruction module, select “Joint Space” from the space selection drop-down box, and set appropriate force threshold, mass coefficient, damping coefficient, stiffness coefficient, maximum speed, and maximum acceleration in the text boxes. Click “Enable” in the instruction type, then click “Add” to add the impedance control enable instruction; click “Disable” in the instruction type, then click “Add” to add the impedance control disable instruction.

../_images/557.png

Figure 9.34-8 Impedance Control Instruction

Specific Parameter Functions and Recommended Values:

  • Space Selection: Set the operating space for impedance control to joint space;

  • Force Threshold: The minimum trigger force for impedance control. The threshold range for J1-J3 is 10–50 Nm, and for rotational directions, the threshold range is 1–10 Nm;

  • Mass Coefficient: Increasing the mass coefficient results in slower offset, while decreasing it causes the robot to offset too quickly. The setting range for J1-J3 is [0.01-1], with a recommended value of 0.04; for J4-J6, the setting range is [0.001-1], with a recommended value of 0.01;

  • Damping Coefficient: Increasing the damping coefficient results in slower offset, while decreasing it causes the robot to offset too quickly and may produce oscillation. The setting range for J1-J3 is [0.1-2], with a recommended value of 0.1; for J4-J6, the setting range is [0.008-1.5], with a recommended value of 0.08;

  • Stiffness Coefficient: Increasing the stiffness coefficient results in slower offset. The recommended value is 0;

  • Maximum Speed: Limits the joint rotation speed generated by external forces. The recommended value is 50°/s;

  • Maximum Acceleration: Limits the joint rotation acceleration generated by external forces. The recommended value is 50°/s².

9.34. Custom Weaving Welding Function

9.34.1. Overview

The custom weaving welding function allows the execution of weaving using a pattern designed by the user.

Description of the Custom Weaving Welding Function:

    1. In the weaving parameters interface, select any one of the weaving types: “Custom Weave 0”, “Custom Weave 1”, or “Custom Weave 2”. A maximum of 3 custom weaving patterns can be set.

    1. The number of custom weaving endpoints can be set to a maximum of 10 and a minimum of 2. The X, Y, Z data of the last endpoint is fixed at 0 and cannot be modified, though the dwell time for all endpoints can be set.

    1. The X, Y, and Z values of the custom weaving endpoints must be within the range of -10mm to 10mm, and the weaving frequency must not exceed 10 Hz.

    1. Currently, linear, circular, and full-circle trajectories support custom weaving welding, but the weaving gradient function is not yet supported.

    1. Note: When the weaving dwell time is set to “Include”, the total weaving dwell time must not exceed half of the weaving cycle time.

9.34.2. Operational Procedure for Custom Weaving Welding Function

The operational procedure for the custom weaving welding function is as follows:

Step 1: First, record the start and end teach points of the linear trajectory. Then, click “Teach Program” -> “Program Editing”, select “Point to Point” to move the robot end to the linear start point “custWeaveP1”. Finally, select “Linear” to move the robot to the linear end point “custWeaveP2”.

Step 2: Select the “Weaving” button, click the weaving process editing button to enter the weaving parameters setting interface. Select “Custom Weave N” (N=0, 1, 2) for the “Weaving Type”.

../_images/478.png

Chart 9.34-1 Weaving Parameters Setting Interface

Step 3: After selecting the “Weaving Type”, scroll down in the weaving parameters setting interface. In this interface, select the number of custom weaving endpoints, set the position and dwell time of each point in the weaving coordinate system, and finally click the “Configure” button.

../_images/479.png

Chart 9.34-2 Custom Weaving Setting Interface

Step 4: In the weaving interface, sequentially select “Start Weaving” and “Stop Weaving” in the “Command Type” dropdown, click the “Add” button, and finally click the “Apply” button.

../_images/480.png

Chart 9.34-3 Weaving Command Setting Interface

Step 5: In the program editing interface, select the weaving start command, click the “Move Up” button at the top of the interface, and finally save the program. Switch the robot to automatic mode and click the “Start” button. The robot will then begin custom weaving along the linear trajectory.

../_images/481.png

Chart 9.34-4 Original LUA Command Interface

../_images/482.png

Chart 9.34-5 Modified LUA Command Interface

Step 6: The steps for setting up custom weaving for circular and full-circle trajectories are the same as Step 1 to Step 5 above.

9.35. Teach point configuration

Click “Points Config.” to enter the teaching point configuration interface.

Before using the button box or other IO signals to record the teaching point function, the user first configures the teaching point name prefix, the upper limit of the number and the teaching method. The name prefix supports two modes: custom prefix and current program name as the prefix. For example, customize the name prefix “P”, number upper limit “3”, teaching method “robot teaching”, record the current end (tool) points of the robot in sequence: P1, P2, P3, and record again will overwrite the previous record points.

../_images/483.png

Chart 9.35-1 Teach point configuration

9.35.1. End-point dot automatic overwrite update Lua program function

9.35.1.1. End-point dot configuration

  1. Enable the end-point dot function and click on settings. You can use the switch to select the Lua programs that need to be updated for specific positions.

../_images/484.png

Chart 9.35‑2 Enable end point recording

  1. The configuration is complete, with the end-tip dot name prefixed as “test”, the numbering limit set to 10, and all Lua programs selected for enabling updates. Close the webApp, and the function remains active.

9.35.1.2. End-button dot automatic update Lua program

  1. Click the robot end-point dot button.

../_images/485.png

Chart 9.35‑3 end-point dot button

  1. At this point, the end-tip LED flashes: with the purple light flashing (start) -> blue light on (dot recording and updating in Lua) -> green light on (dot recording completed), and the position information corresponding to the selected Lua program’s name is synchronized and updated.

../_images/486.png

Chart 9.35‑3 End-tip dot recording and updating Lua program LED changes

  1. When the dot recording fails, the end-tip LED flashes: Purple light flashing (start) -> Red light flashing (dot recording failed) -> Green light on (returning to normal).

../_images/487.png

Chart 9.35‑4 LED changes when end-tip dot recording fails

9.35.1.3. Function usage example

  1. Click on Auxiliary Applications - Tool Applications - Teaching Point Configuration, customize the prefix to “test”, set the number limit to 5, select Robot Teaching as the teaching method, enable the end-point dot function, and click on settings.

  2. Activate the Lua program “program1” that requires position updates.

../_images/488.png

Chart 9.35‑5 Teaching Point Configuration

  1. As shown below, it depicts the “program1” program and its current running trajectory.

../_images/489.png

Chart 9.35‑6 Program1 program and its current running trajectory

  1. Switch the page to manual mode, move the robot to a new position, click the end-tip dot button, and wait for the end-tip LED to complete its flashing sequence: Purple light flashing (start) -> Blue light on (dot recording and updating in Lua) -> Green light on (dot recording completed), at which point the recorded position is labeled as test1.

  2. Repeat step 4 to record positions “test2,” “test3,” “test4,” and “test5,” completing the recording of 5 points. At this stage, the positions for the “program1” program have been synchronized and updated.

  3. Re-run the “program1” program. The motion trajectory will have been updated, and the updated motion trajectory is shown below.

../_images/490.png

Chart 9.35‑7 Updated running trajectory

9.36. Main program configuration

Click “Main program” to enter the main program configuration function interface.

The configuration of the main program can be used in conjunction with the DI configuration of the main program startup. The configured main program needs to be trial run first to ensure safety. After configuring the corresponding DI in the robot settings to start the main program signal function, the user can control the DI signal to run the main program.

../_images/491.png

Chart 9.36‑1 Main program configuration

9.37. Robot Extended Axis Intersecting Line Welding

9.37.1. System Configuration

../_images/497.png

Figure 9.37‑1 Robot Extended Axis Intersecting Line Welding System Configuration

In the system, (a) is the computer, (b) is the robot and its control box, (c) is the positioner and drive equipment, (d) is the welder and supporting equipment.

9.37.2. Extended Axis Communication Configuration

The communication methods between the robot and the extended axis include using UDP or RS485.

../_images/498.png

Figure 9.37‑2 Extended Axis Configuration Page

Click “Initial Setup”, “Peripherals”, “Extended Axis” on the robot operation interface to enter the extended axis configuration page. Taking using a PLC connected to the robot via UDP communication as an example, click the “UDP Communication” icon to enter the extended axis configuration page for UDP communication.

../_images/499.png

Figure 9.37‑3 UDP Communication Configuration Interface

On the extended axis configuration page for UDP communication, you can select the corresponding extended axis number, connect and configure UDP communication parameters (address, port, cycle, packet loss detection, etc.), and the extended axis positioning completion time.

Extended axis configuration content is not the focus of this function introduction. For detailed configuration, refer to the corresponding section of the user manual.

9.37.3. Welder Connection Configuration

Configure the welder through the following configuration page:

../_images/500.png

Figure 9.37‑4 Welder Configuration Page

Welder communication can use IO communication or RS485 communication. Click “Initial Setup”, “Peripherals”, “Welder” to enter the configuration and connection interface, where you can configure modules such as “Control Type”, “I/O Configuration”, “Welding Process Parameters”, “Welder Debugging”, etc.

Welder configuration content is not the focus of this function introduction. For detailed configuration, refer to the corresponding section of the user manual.

9.37.4. Tool Coordinate System Calibration

After installing the welding torch on the robot end, calibrate the welding torch:

../_images/501.png

Figure 9.37‑5 Tool Coordinate System Configuration Page

Click “Initial Setup”, “Basic”, “Tool Coordinates” to enter the tool coordinate system settings page.

../_images/502.png

Figure 9.37‑6 Select the 6-Point Method to Calibrate the Welding Torch

Select an empty coordinate system, choose the tool type as “Tool”, select the 6-point method to calibrate the welding torch tool. It is recommended to calibrate the posture of the tool coordinate system as shown in Figure 4-3 below.

../_images/503.png

Figure 9.37‑7 Welding Torch Coordinate System Posture Diagram

Tool coordinate system calibration content is not the focus of this function introduction. For detailed calibration methods, refer to the corresponding section of the user manual.

9.37.5. Intersecting Line Welding Function

There are two forms of trajectory motion for intersecting line welding: one is using a two-degree-of-freedom L-type positioner for intersecting line motion, and the other is performing intersecting line motion directly without using a positioner.

9.37.5.1. Extended Axis Coordinate System Calibration

When using the extended axis coordinate system to achieve synchronized motion between the positioner and the robot, the extended axis coordinate system needs to be calibrated.

../_images/504.png

Figure 9.37‑8 Extended Axis Coordinate System Settings Page

Click “Initial Setup”, “Peripherals”, “Extended Axis” to enter the extended axis coordinate system settings interface. Select the extended axis number that needs to be set, click the edit button, select “1-Two-degree-of-freedom L-type Positioner” and save.

../_images/505.png

Figure 9.37‑9 Extended Axis Calibration Page

When calibrating the extended axis, pay attention to select “Robot Position Relative to Extended Axis” as “Outside Extended Axis”. For the positioner case, select the 4-point method for calibration.

Extended axis calibration content is not the focus of this function introduction. For detailed calibration methods, refer to the corresponding section of the user manual.

9.37.5.2. Intersecting Line Trajectory Welding

Based on the taught points recorded on the cross-sections of the main pipe and the branch pipe, a workpiece coordinate system as shown in the figure below can be established. The origin of the coordinate system is located at the intersection point of the main pipe and branch pipe axes, the X-axis is parallel to the main pipe axis pointing towards the section where the taught points are recorded, and the Z-axis is parallel to the branch pipe axis pointing towards the plane where the taught points are recorded.

../_images/506.png

Figure 9.37‑10 Intersecting Line Trajectory Workpiece Coordinate System

9.37.5.2.1. Method Without Using a Positioner

Step 1: Record 6 taught points on the cross-section of the main pipe and the cross-section of the branch pipe respectively.

Step 2: Click “Teach Program”, “Program Programming”, find “Intersecting Line” in the “Motion Instructions”, and enter the intersecting line trajectory settings page.

../_images/507.png

Figure 9.37‑11 Intersecting Line Trajectory Settings Page

Step 3: On the intersecting line trajectory settings page, select “Disable” for “Extended Axis Points”, complete the settings for starting point motion, motion direction, speed and acceleration, and offset value. The counterclockwise motion direction is the direction of the four fingers when the right hand grips the Z-axis of the workpiece coordinate system.

Step 4: In the “Intersecting Line Point Data” section of the intersecting line trajectory settings page, select the recorded taught points. After setting, click the “Add”, “Apply” buttons.

../_images/508.png

Figure 9.37‑12 Intersecting Line Trajectory Instruction Settings

Step 5: Click the “Welding” button under “Welding Instructions” to enter the welding settings page, select “Arc Start” and “Arc End” instructions, click the “Add”, “Apply” buttons. After successful addition, move the Arc Start LUA instruction up one line.

../_images/509.png

Figure 9.37‑13 Welding Instruction Settings

The following is a typical LUA program for intersecting line welding without a positioner:

../_images/510.png

Figure 9.37‑14 No Positioner - Intersecting Line Welding Example Program

9.37.5.2.2. Method Using a Two-Degree-of-Freedom L-Type Positioner

Step 1: Record 6 taught points on the cross-section of the main pipe and the cross-section of the branch pipe respectively, and rotate axes 1 and 2 of the positioner to record 4 positioner taught points.

Step 2: Click “Teach Program”, “Program Programming”, find “Intersecting Line” in the “Motion Instructions”, and enter the intersecting line trajectory settings page.

../_images/511.png

Figure 9.37‑15 Intersecting Line Trajectory Settings Page

Step 3: On the intersecting line trajectory settings page, select “Enable” for “Extended Axis Points”, select the recorded positioner taught points, complete the settings for starting point motion, motion direction, speed and acceleration, and offset value.

Step 4: In the “Intersecting Line Point Data” section of the intersecting line trajectory settings page, select the recorded taught points. After setting, click the “Add”, “Apply” buttons.

../_images/512.png

Figure 9.37‑16 Intersecting Line Trajectory Instruction Settings

Step 5: Click the “Welding” button under “Welding Instructions” to enter the welding settings page, select “Arc Start” and “Arc End” instructions, click the “Add”, “Apply” buttons. After successful addition, move the Arc Start LUA instruction up one line.

../_images/513.png

Figure 9.37‑17 Welding Instruction Settings

The following is a typical LUA program for positioner-based intersecting line welding:

../_images/514.png

Figure 9.37‑18 Positioner - Intersecting Line Welding Example Program