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.
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.
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”.
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”.
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.
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”.
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.
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.
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”.
Figure 9.27-14 Blending Settings for Conventional PTP
Step 4: Generate program; all instructions use optimized T-shape velocity.
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.
Figure 9.27-16 Blending Settings for Accelerated Smooth PTP
Step 3: Add PTP and CIRCLE instructions, run between AccSmoothStart/End.
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.
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.
Figure 9.27-19 Blending Settings for Conventional PTP
Step 4: Generate program for all-instruction optimized velocity.
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”.
Figure 9.27-21 Blending Settings for Accelerated Smooth LIN
Step 3: Add LIN and PTP instructions, run within AccSmoothStart/End.
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.
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.
Figure 9.27-24 Blending Settings for Conventional LIN
Step 4: Generate program for all-instruction optimized velocity.
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.
Figure 9.27-26 Blending Settings for Accelerated Smooth LIN
Step 3: Add multiple LIN instructions, run between AccSmoothStart/End.
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.
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.
Figure 9.27-29 Blending Settings for Conventional LIN
Step 4: Generate program for optimized velocity across all instructions.
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.
Figure 9.27-31 Blending Settings for Accelerated Smooth LIN
Step 3: Add LIN and ARC instructions within AccSmoothStart/End.
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.
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.
Figure 9.27-34 Blending Settings for Conventional LIN
Step 4: Generate program for all-instruction optimized velocity.
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.
Figure 9.27-36 Blending Settings for Accelerated Smooth LIN
Step 3: Add LIN and CIRCLE instructions between AccSmoothStart/End.
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.
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.
Figure 9.27-39 Blending Settings for Conventional LIN
Step 4: Generate program for optimized velocity across all instructions.
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”.
Figure 9.27-41 Blending Settings for Accelerated Smooth ARC
Step 3: Add ARC and PTP instructions within AccSmoothStart/End.
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.
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.
Figure 9.27-44 Blending Settings for Conventional ARC
Step 4: Generate program for all-instruction optimized velocity.
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”.
Figure 9.27-46 Blending Settings for Accelerated Smooth ARC
Step 3: Add ARC and LIN instructions between AccSmoothStart/End.
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.
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.
Figure 9.27-49 Blending Settings for Conventional ARC
Step 4: Generate program for optimized velocity across all instructions.
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”.
Figure 9.27-51 Blending Settings for Accelerated Smooth ARC
Step 3: Add multiple Arc instructions within AccSmoothStart/End.
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.
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.
Figure 9.27-54 Blending Settings for Conventional ARC
Step 4: Generate program for all-instruction optimized velocity.
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”.
Figure 9.27-56 Blending Settings for Accelerated Smooth ARC
Step 3: Add Arc and CIRCLE instructions between AccSmoothStart/End.
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.
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.
Figure 9.27-59 Blending Settings for Conventional ARC
Step 4: Generate program for optimized velocity across all instructions.
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”.
Figure 9.27-61 Blending Settings for Accelerated Smooth CIRCLE
Step 3: Add CIRCLE and PTP instructions within AccSmoothStart/End.
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.
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.
Figure 9.27-64 Blending Settings for Conventional CIRCLE
Step 4: Generate program for all-instruction optimized velocity.
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”.
Figure 9.27-66 Blending Settings for Accelerated Smooth CIRCLE
Step 3: Add CIRCLE and LIN instructions between AccSmoothStart/End.
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.
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.
Figure 9.27-69 Blending Settings for Conventional CIRCLE
Step 4: Generate program for optimized velocity across all instructions.
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”.
Figure 9.27-71 Blending Settings for Accelerated Smooth CIRCLE
Step 3: Add CIRCLE and Arc instructions within AccSmoothStart/End.
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.
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.
Figure 9.27-74 Blending Settings for Conventional CIRCLE
Step 4: Generate program for all-instruction optimized velocity.
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”.
Figure 9.27-76 Blending Settings for Accelerated Smooth CIRCLE
Step 3: Add multiple CIRCLE instructions within AccSmoothStart/End.
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.
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.
Figure 9.27-79 Blending Settings for Conventional CIRCLE
Step 4: Generate program for optimized velocity across all instructions.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Figure 9.28-1 Motion Command Interface
In the “Motion Command” interface, click “Weave” to enter the “Weave” command editing interface.
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.
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.
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.
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.
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.
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.
Figure 9.29-1 Welding Command Interface
In the “Welding Command” interface, click “Weld” to enter the “Weld” command configuration interface.
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.
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”.
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.
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”.
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.
Figure 9.29-7 Welding Voltage Gradual End Command Parameters
After configuration, click “Apply” to generate LUA program.
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.
Figure 9.29-9 Motion Command Interface
Click “Weave” to enter configuration interface.
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.
Figure 9.29-11 Weave+Travel Speed Gradual Start Parameters
Click “Weave Gradual End” (no parameters needed), then “Add” and verify.
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.
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.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”.
Figure 9.30-1 Creating a ModbusRTU Master User Program
Click the “ModbusRTU Settings” button to open the ModbusRTU configuration page.
Figure 9.30-2 Opening ModbusRTU Settings
Click “Master Settings” and then “Add Modbus Master” to complete adding a ModbusRTU Master.
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.
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.)
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.
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.
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).
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.
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.
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).
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.
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.
Figure 9.30-13 Opening the Communication Instruction Addition Page
Click “Modbus”.
Figure 9.30-14 Selecting Modbus
Click “Modbus_RTU”, select “Master (Client)”, to open the ModbusRTU Master instruction addition page.
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).
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.
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).
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.
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).
Figure 9.30-20 Reading Coils
Now the robot program “testModbusRTUSlave.lua” has added two robot Modbus Master instructions to read coils.
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”.
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).
Figure 9.30-23 Reading Holding Registers
Now the robot program “testModbusRTUSlave.lua” has added two robot Modbus Master instructions to read coils.
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.
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”.
Figure 9.30-26 Creating a ModbusRTU Slave User Program
Click the “ModbusRTU Settings” button to open the ModbusRTU configuration page.
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.
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.
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.
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.
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.
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.
Figure 9.30-33 Opening the Communication Instruction Addition Page
Click “Modbus”.
Figure 9.30-34 Selecting Modbus
Click “Modbus_RTU”, select “Slave”, to open the ModbusRTU Slave instruction addition page (Figure 60).
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.
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”.
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.
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.
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.
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.
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”.
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.
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.
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.
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.
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.
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.
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.
Figure 9.30-49 Reading Analog Inputs
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.
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.
Figure 9.30-52 Program for Waiting for Digital Input