top of page

10.8.4. Laser recording instruction

10.8.4. Laser recording instruction

Drag the “Laser recording instruction” code block to enter the graphical editing interface work area.

This instruction realizes the laser tracking and recording start and end point extraction function, so that the robot can automatically move to the starting position. It is suitable for occasions where the movement starts from the outside of the workpiece and the laser tracking and recording is performed. At the same time, the host computer can obtain the information of the start and end points in the recorded data for subsequent movement.

The adjustable laser tracking repetition speed function enables the robot to record at a very fast speed and then reproduce at the normal welding speed, which can improve work efficiency.

  1. “Laser Sensor Record” Command Node, Parameters:

  2. Function Selection: Stop Recording / Real-time Tracking / Start Recording / Path Playback

  3. Function Selection: Delay Time / Delay Distance

  4. Time: 0 ~ 10000

  5. Extended Axis Number: 1 ~ 4

  6. Distance: 0 ~ 10000

  7. Compensation Sensitivity Coefficient: 0 ~ 1

  8. Speed: 0 ~ 100

Figure 10.8-17 Weld data record command code block

  1. “Get weld start/end point” command node, parameters:

  2. Movement mode: PTP/LIN

  3. Speed ​​(%): 0~100, default is 30

Figure 10.8-18 “Get weld start/end point” command code block

10.8.5. Welding wire positioning instruction

Drag the “Welding wire positioning instruction” code block to enter the graphical editing interface workspace.

This instruction is generally used in welding scenarios and requires the welding machine to be used in combination with the robot IO and motion instructions. It is divided into positioning start, positioning end, positioning point setting, offset calculation and contact point data writing.

“Wire position finding start/end” command node, parameters:

  • Reference position: do not update/update

  • Position finding speed: 0~100

  • Position finding distance: 0~1000

  • Automatic return mark: do not automatically return/automatically return

  • Automatic return speed: 0~100

  • Automatic return distance: 0~1000

  • Position finding method: teaching point positioning/position finding with offset

Figure 10.8-19 “Wire position finding start/end” command code block

The position finding point setting adds points according to the weld type and calculation method.

  • When the type is fillet weld and the calculation method is 1D (one of xyz), the point to be added is selected from point a and point b;

  • When the type is fillet weld and the calculation method is 2D (two of xyz), the point to be added is selected from point a, point b, point e, and point f;

  • When the type is fillet weld and the calculation method is 3D (xyz), the point to be added is selected from point a, point b, point c, point d, point e, and point f;

  • When the type is fillet weld and the calculation method is 2D- (two of xyz, one of rxryrz), the point to be added is selected from point a, point b, point c, point d, point e, and point f;

  • When the type is inner and outer diameter and the calculation method is 2D2D (two of xyz), the point to be added is selected from point a and point b;

  • When the type is point and the calculation method is 3D (xyz), the point to be added is selected from point a, point b, point c, point d, point e, and point f;

  • When the type is camera and the calculation method is 3D-(xyzrxryrz), the point to be added is selected from point a and point b;

  • When the type is surface and the calculation method is 3D-(xyzrxryrz), the point to be added is selected from point a and point b;

Figure 10.8-20 “Point Finding Setting Guide” instruction code block

Calculate the offset and set the reference point and contact point according to the weld type and calculation method.

  • When the type is fillet weld and the calculation method is 1D (one of xyz), set reference point 1 and contact point 1;

  • When the type is fillet weld and the calculation method is 2D (two of xyz), set reference point 1, reference point 2, contact point 1, and contact point 2;

  • When the type is fillet weld and the calculation method is 3D (xyz), set reference point 1, reference point 2, reference point 3, contact point 1, contact point 2, and contact point 3;

  • When the type is fillet weld and the calculation method is 2D- (two of xyz, one of rxryrz), set reference point 1, reference point 2, reference point 3, contact point 1, contact point 2, and contact point 3;

  • When the type is inner and outer diameter and the calculation method is 2D2D (two of xyz), set reference point 1, reference point 2, reference point 3, contact point 1, contact point 2, and contact point 3;

  • When the type is point and the calculation method is 3D (xyz), set contact point 1 and contact point 2;

  • When the type is camera and the calculation method is 3D-(xyzrxryrz), set contact point 1 and contact point 2;

  • When the type is surface and the calculation method is 3D-(xyzrxryrz), set contact point 1, contact point 2, contact point 3, contact point 4, contact point 5, and contact point 6;

Figure 10.8-21 “Calculate offset” instruction code block

“Write contact point data” instruction node, parameters:

  • Contact point name: RES0~99

  • Contact point name: data format is {0,0,0,0,0,0};

Figure 10.8-22 “Contact point data write” instruction code block

10.8.6. Arc tracking instruction

Drag the “Arc tracking instruction” code block to enter the graphical editing interface workspace.

This instruction implements robot weld tracking and uses weld deviation detection to compensate the trajectory. Arc sensors can be used to detect weld deviation.

“Arc tracking on/off” command node, parameters:

  • Arc tracking lag time (ms): reference value 50

  • Deviation compensation: off/on

  • Adjustment coefficient: 0 ~ 300

  • Compensation time (cyc): 0 ~ 300

  • Maximum compensation amount per time (mm): 0 ~ 300

  • Total maximum compensation amount (mm): 0 ~ 300

  • Upper and lower coordinate system selection: swing

  • Upper and lower reference current setting method: feedback/constant

  • Upper and lower reference current (A): 0 ~ 300

Chart 10.8-23 Arc tracking instruction code block

10.8.7. Posture adjustment instruction

Drag the “Posture Adjustment Instruction” code block to enter the graphical editing interface workspace.

This instruction is for the welding tracking adaptive adjustment of the welding gun posture scene. You need to teach the three points PosA, PosB, and PosC first, otherwise you cannot add nodes.

After recording the three corresponding posture points, add the posture adaptive adjustment instruction according to the actual movement direction of the robot. See the robot peripherals chapter for details.

“Start posture adjustment” command node, parameters:

  • Plate type: Corrugated board/Corrugated board/Fence board/Corrugated carapace steel

  • Movement direction: From left to right/From right to left

  • Posture adjustment time (ms): 0 ~ 1000

  • First segment length (mm):

  • Inflection point type: From top to bottom/From bottom to top

  • Second segment length (mm):

  • Third segment length (mm):

  • Fourth segment length (mm):

  • Fifth segment length (mm):

Figure 10.8-24 Posture adjustment command code block

10.9. Force control graphical programming commands

Force control graphical programming commands include force control set, torque recording and other force control commands.

Figure 10.9 Force control graphical programming commands

10.9.1. Force control commands

Drag the “force control command” code block to enter the graphical editing interface workspace.

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.

  1. “Open/Close Collision Detection” command node, parameters:

  2. Coordinate system name: Custom configured coordinate system

  3. Fx-Tx true value: true/false

  4. Fx-Tx current value: Enter according to actual situation

  5. Fx-Tx maximum threshold: Enter according to actual situation

  6. Fx-Tx minimum threshold: Enter according to actual situation

Figure 10.9-1 Open/Close Collision Detection Command Code Block

  1. “Open/Close Control” command node, parameters:

  2. Coordinate system name: Custom configured coordinate system

  3. Fx-Tx true value: true/false

  4. Fx-Tx current value: Adjust according to actual situation

  5. F_P_gain - F_D_gain: Adjust according to actual situation, cannot be 0

  6. Adaptive start/stop state: Stop/Open

  7. ILC control start/stop status: stop/training/practical operation

  8. Maximum adjustment distance (mm): 0 ~ 1000

  9. Maximum adjustment angle (°): 0 ~ 1000

Figure 10.9-2 Open/close control instruction code block

  1. “Open/close smooth control” instruction node, parameters:

  2. Send position adjustment coefficient: 0 ~ 1

  3. Smooth opening force threshold (N): 0 ~ 100

Figure 10.9-3 Open/close smooth control instruction code block

  1. “Spiral insertion” instruction node, parameters:

  2. Coordinate system name: tool coordinate system/base coordinate system

  3. Radius feed per revolution (mm): 0 ~ 100, reference value: 0.7

  4. Force or torque threshold (N/Nm): 0 ~ 100, reference value: 50

  5. Maximum exploration time (ms): 0 ~ 60000, reference value: 60000

  6. Maximum linear velocity (mm/s): 0 ~ 100, reference value: 5

Figure 10.9-4 Helical insertion instruction code block

  1. “Rotation insertion” instruction node, parameters:

  2. Coordinate system name: tool coordinate system/base coordinate system

  3. Rotation angular velocity (°/s): 0 ~ 100, reference value: 0.7

  4. Trigger force or end torque (N/Nm): 0 ~ 100, reference value: 50

  5. Maximum rotation angle (°): 0 ~ 100, reference value: 5

  6. Direction of force: direction z/direction mz

  7. Maximum rotation angular acceleration (°/s^2): 0 ~ 100

  8. Insertion direction: positive/negative

Figure 10.9-5 Rotational insertion instruction code block

  1. “Linear insertion” instruction node, parameters:

  2. Coordinate system name: tool coordinate system/base coordinate system

  3. Action termination force threshold (N): 0 ~ 100

  4. Linear speed (mm/s): 0 ~ 100, reference value: 1

  5. Linear acceleration (°/s^2): 0 ~ 100

  6. Maximum insertion distance (mm): 0 ~ 100

  7. Insertion direction: positive/negative

Figure 10.9-6 Linear insertion instruction code block

  1. “Surface positioning” instruction node, parameters:

  2. Coordinate system name: tool coordinate system/base coordinate

  3. Moving direction: positive/negative

  4. Moving axis: X/Y/Z

  5. Exploration linear speed (mm/s): 0 ~ 100

  6. Exploration acceleration (mm/s^2): 0 ~ 100

  7. Maximum exploration distance (mm): 0 ~ 100

  8. Action termination force threshold (N): 0 ~ 100

Figure 10.9-7 Surface positioning instruction code block

  1. “Middle plane start/end calculation” instruction node:

Figure 10.9-8 Middle plane start/end calculation instruction code block

10.9.2. Torque recording instruction

Drag the “Torque recording instruction” code block to enter the graphical editing interface workspace.

This instruction is a torque recording instruction, which includes three instructions: “Torque Recording Start/”Torque Recording Stop” and “Torque Recording Reset”.

Realize the torque real-time recording collision detection function.

Click the “Torque Recording Start” button to continuously record the collision situation during the operation of the motion instruction. 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 duration of the collision detection is recorded.

Click the “Torque Recording Stop” button to stop recording. Click “Torque Recording Reset” to restore the status to the default state.

  1. “Torque Recording Start” instruction node, parameters:

  2. Smoothing selection: unsmoothed (original data)/smoothed (smoothed data)

  3. Joint negative threshold (Nm): -100 ~ 0

  4. Joint positive threshold (Nm): 0 ~ 100

  5. Joint continuous collision detection time (ms): 0 ~ 1000

Chart 10.9-9 Torque record start instruction code block

  1. “Torque record end” instruction node

Figure 10.9-10 Torque record end instruction code block

  1. “Torque record reset” instruction node

Figure 10.9-11 Torque record reset instruction code block

10.10. Communication graphic programming commands

Communication graphic programming commands include modbus master station settings (client), modbus slave station settings, register reading and other communication commands.

Figure 10.10 Communication Graphical Programming Commands

10.10.1. Modbus Commands

Drag the “Modbus Command” code block to enter the graphical editing interface workspace.

This command function is a bus function based on the ModbusTCP protocol. Users can control the robot to communicate with the ModbusTCP client or server (master and slave communication) through relevant commands, and read and write coils, discrete quantities, and registers. For more ModbusTCP operation functions, please contact us for consultation.

Before using the modbus node function, you need to configure the master station, slave station, and DI, DO, AI, and AO names in the teaching program ModbusTCP configuration.

  1. Master digital output settings, parameters:

  2. Modbus master station name: Configure according to actual conditions

  3. DO name: Configure according to actual conditions

  4. Number of registers: Integer type 0 ~ 128

  5. Register value: Determined according to the number of registers, multiple values ​​can be entered. For example, if the quantity is 3, the values ​​are 1, 0, 1

Figure 10.10-1 Master station “read/write digital output” instruction code block

  1. Master station digital input settings, parameters:

  2. Modbus master station name: configure according to actual situation

  3. DI name: configure according to actual situation

  4. Number of registers: integer type 0 ~ 128

Figure 10.10-2 Master station “read digital input” instruction code block

  1. Master station analog output settings, parameters:

  2. Modbus master station name: configure according to actual situation

  3. AO name: configure according to actual situation

  4. Number of registers: integer type 0 ~ 128

  5. Register value: Determined by the number of registers, multiple values ​​can be entered. For example, if the quantity is 3, the values ​​are 1, 0, 1

Figure 10.10-3 Master station “read/write analog output” instruction code block

  1. Master station analog input setting, parameters:

  2. Modbus master station name: configure according to actual situation

  3. AI name: configure according to actual situation

  4. Number of registers: integer type 0 ~ 128

Figure 10.10-4 Master station “read analog input” instruction code block

  1. Master station wait digital input setting, parameters:

  2. Modbus master station name: configure according to actual situation

  3. DI name: configure according to actual situation

  4. Waiting state: true/false

  5. Timeout time (ms): integer type 0 ~ 128

Figure 10.10-5 Master station “wait for digital input” instruction code block

  1. Master station wait analog word input setting, parameters:

  2. Modbus master station name: Configure according to actual situation

  3. AI name: Configure according to actual situation

  4. Waiting state: greater than/less than

  5. Number of registers: Integer type 0 ~ 128

  6. Register value: Determined by the number of registers, multiple values ​​can be entered.

Figure 10.10-6 Master station “Wait for analog input instruction code block”

  1. Slave station digital output settings, parameters:

  2. DO name: Configure according to actual situation

  3. Number of registers: Integer type 0 ~ 128

  4. Register value: Determined by the number of registers, multiple values ​​can be entered. For example, the number is 3, the value is 1,0,1

Figure 10.10-7 Slave station “Read/write digital output” instruction code block

  1. Slave station digital input settings, parameters:

  2. DI name: Configure according to actual situation

  3. Number of registers: Integer type 0 ~ 128

Figure 10.10-8 Slave “Read Digital Input” Instruction Code Block

  1. Slave Analog Output Settings, Parameters:

  2. AO Name: Configure according to actual situation

  3. Number of Registers: Integer 0 ~ 128

  4. Register Value: Determined by the number of registers, multiple values ​​can be entered. For example, if the number is 3, the values ​​are 1, 0, 1

Figure 10.10-9 Slave “Read/Write Analog Output” Instruction Code Block

  1. Slave Analog Input Settings, Parameters:

  2. AI Name: Configure according to actual situation

  3. Number of Registers: Integer 0 ~ 128

Figure 10.10-10 Slave station “read analog input” instruction code block

  1. Slave station wait digital input setting, parameters:

  2. DI name: configure according to actual situation

  3. Waiting state: true/false

  4. Timeout (ms): integer type

Chart 10.10-11 Slave station “wait digital input” instruction code block

  1. Slave station wait analog input setting, parameters:

  2. AI name: configure according to actual situation

  3. Waiting state: greater than/less than

  4. Number of registers: integer type 0 ~ 128

  5. Register value: determined according to the number of registers, multiple values ​​can be entered.

Figure 10.10-12 Slave “Wait for analog input” instruction code block

  1. Read register instruction, parameters:

  2. Function code: 0x01-coil/0x02-discrete/0x03-holding register/0x04-input register

  3. Register, coil, discrete address: enter according to actual situation

  4. Register, coil, discrete quantity number: 0 ~ 255

  5. Address: enter according to actual situation

  6. Whether to apply thread: No/Yes

Figure 10.10-13 “Read register” instruction code block

  1. Read register data instruction, parameters:

  2. Register, coil, discrete quantity number: 0 ~ 255

  3. Whether to apply thread: No/Yes

Figure 10.10-14 “Read register data” instruction code block

  1. Write register instruction, parameters:

  2. Function code: 0x01-coil/0x02-discrete/0x03-holding register/0x04-input register

  3. Register, coil address: enter according to actual situation

  4. Number of registers, coils: 0 ~ 255

  5. Byte array: enter according to actual situation

  6. Address: enter according to actual situation

  7. Whether to apply thread: No/Yes

Figure 10.10-15 “Write register instruction” instruction code block

10.11. Advanced Graphical Programming Commands

Advanced graphical programming commands include advanced commands such as dofile calling subroutines, auxiliary threads, and folding instructions.

Figure 10.11 Advanced Graphical Programming Commands

10.11.1. Folding Instructions

Drag the “Folding Instructions” code block to enter the graphical editing interface workspace.

This instruction provides multi-line code block folding display, which is convenient for users to read code blocks.

“Fold” instruction node, parameters:

  • Code block name: name the fold code block

Figure 10.11-1 Fold instruction code block

10.11.2. Call subroutine instruction

Drag the “Call subroutine instruction” code block to enter the graphical editing interface workspace.

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

“Call subroutine” instruction node, parameters:

  • dofile file: create the generated file name

  • Which layer to call: first layer/second layer

  • id number: corresponding position id of the layer

Figure 10.11-2 Call subroutine instruction code block

10.11.3. Auxiliary thread instruction

Drag the “auxiliary thread” code block to enter the graphical editing interface workspace.

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 interacts with external devices for data, supports socket communication, robot DI status acquisition, robot DO status setting, robot status information acquisition, and data interaction with the main thread. The data obtained by the main thread through the auxiliary thread is used to control the judgment of the robot’s motion logic.

“Auxiliary thread” instruction node, parameters:

  • Method name: auxiliary thread name

  • Call function: auxiliary thread call function value

Figure 10.11-3 Auxiliary thread code block

10.11.4. Point table instruction

Drag the “point table” code block to enter the graphical editing interface workspace.

This instruction is mainly used to switch between system mode and point table mode. By switching the point table, the teaching points in different point tables are applied. For details, see Chapter 12 - Teaching Points.

“Point table” instruction node, parameters:

  • Point table mode: switch different point table names

Figure 10.11-4 Point table code block

10.11.5. Focus follow instruction

Drag the “focus follow” code block to enter the graphical editing interface workspace.

This instruction is mainly used to focus on one point and follow the movement during the robot movement.

“Focus follow” command node, parameters:

  • Parameter ratio: 0~100, default value 50

  • Feedforward parameter: 0~1000, default value 19

  • Maximum angular velocity acceleration limit: 0~10000, default value 1440

  • Maximum angular velocity limit: 0~1000, default value 180

  • Lock X-axis direction: reference input vector/horizontal/vertical

Figure 10.11-5 Focus follow code block

10.12. Graphical programming command usage example

After selecting the graphical programming type, click the graphical code block to be used, and you can drag and splice it in the workspace.

For example, select PTP and Lin motion instructions and control instruction Waitms for splicing. The outer layer can nest a folding advanced instruction and enter the comment name to achieve code block folding operation.

Click the drop-down box to select the instruction parameter type, and the input box can be filled in with instruction parameter data. The following are examples of graphical programming commands:

Figure 10.12-1 Example of graphical programming commands

After completing the splicing of graphical programming instructions and filling in parameters, fill in the workspace name and click the “Save” icon to save this program. Select the “workspace” that has been written, click Start Run, and you can execute this program.

10.12.1. Modularization of graphical programming code blocks

In order to improve the readability of graphical programming codes, the modularization function of graphical programming code blocks has been added, namely, advanced instructions: folding instruction code blocks.

Figure 10.12-2 Folding instruction code block

  1. Write a code block instruction, add a folding instruction code block in the outer layer, and write the remarks of the instruction in the input box.

Figure 10.12-3 Folding instruction effect diagram

  1. Right-click “Fold Block” in the right-click operation bar, and the instruction code block will be folded. The code block is folded into a line and the program can be executed correctly when folded.

Figure 10.12-4 Folded effect diagram

  1. Scroll the mouse to realize the page zoom function, the specific effect is as follows:

Figure 10.12-5 Page zoom function effect diagram

10.12.2. Graphical programming same name overwrite

On the graphical programming page, after creating/loading a file, change the workspace name and click Save. If the changed workspace name file already exists, the “Teaching point already exists” pop-up box will be triggered, as shown below.

Figure 10.12-6 Graphical programming program overwriting

Step1: Click the “Cancel” button to continue the previous operation.

Step2: Click the “Synchronize and update teaching program” checkbox, and then click the “Overwrite” button, the lua program on the current graphical programming page will overwrite the lua program of the changed workspace file name.

10.12.3. Graphical programming program not saved verification

On the graphical programming page, after opening/creating a new program, if the graphical programming program is changed but not saved.

If you click the “Open” file operation, the “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 in the figure below.

Figure 10.12-7 Current page program is not saved verification

Step1: Click the “Don’t Save” button to continue the previous “Open” file operation.

Step2: Click the “Save” button, the unsaved Lua program is saved successfully, and the previous “Open” file operation is continued.

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

Figure 10.12-8 Switch page program is not saved verification

Step1: Click the “Don’t Save” button to jump to the previously selected page.

Step2: Click the “Save” button, the unsaved Lua program is saved successfully, and jumps to the previously selected page. If the saved program name already exists, it prompts that the teaching point already exists, whether to overwrite. After canceling/overwriting, jump to the previously selected page.

robotic arm
FAIRINO ROBOTIC ARMS

Contact

Location: 10637 Scripps Summit Court,

San Diego, CA. 92131
Phone: (619) 333-FAIR
Email: hello@fairino.us

© 2023 FAIRINO Proudly created By G2T

bottom of page