How to obtain and analyze the actual speed of the FANUC robot trajectory during operation

Paste the conclusion first

premise Acquisition and Analysis Methods
With Roboguide simulation software 1. Roboguide has a built-in speed recording function, which can display the actual speed value on the running track; 2. Roboguide Motion Pro optional function
No emulation software 1. Obtain the actual running speed of the robot by reading system variables; the speed value can be written into the R register at a certain time interval through the karel program, and then imported into excel through the VA file of the register to form a speed curve; 2 , FANUC robot has Speed ​​out function, which can output speed value to AO, GO, R registers, etc.

1. Is there a difference between the actual speed and the command speed?

The answer is yes. When teaching program points, various industrial robots have "corner radius", "approach distance" or similar concepts, which are used to describe the smooth transition of the trajectory when passing a certain point. You can use the analogy of human movement to understand this. When you encounter a small turn while running, you will automatically slow down; slow.
insert image description here

The same is true for industrial robots, which leads to the fact that the actual running speed of the robot is generally lower than the command speed. For example, according to statistics, in some body glue applications, the average speed of the actual trajectory can only reach 60%-70% of the command speed. %. This will cause trouble for some users, for example, the speed value of the program motion command is obviously increased, but the robot beat does not improve during actual operation.

Of course, I also thought about whether the manufacturer can make the actual running speed close to the track speed through the optimization of the algorithm in the design, so that the actual running point is as close as possible to the teaching point, but as shown in the figure below, such a design logic will lead to new The problem is that the trajectory in the middle may be unpredictable, and even interfere with the entities of the environment.
insert image description here

2. Is it necessary to analyze the actual running speed

I think it is necessary and not necessary. It is not necessary to mean that without in-depth research and analysis of the problem, the process effect that meets the requirements can also be debugged through parameter adjustment and experience accumulation; it is necessary to mean that if you want to deeply analyze the actual running speed of the robot, it is necessary studied quantitatively. This article solves how to obtain and analyze the actual running speed of FANUC robots.
Regarding the specific application of the process, for example, in some gluing occasions, it is necessary to ensure that there is no obvious difference in the film thickness and width of the adhesive strip at the position of the corner, which requires higher requirements for the smoothness of the robot's speed.

insert image description here

3. Use Roboguide to analyze the actual running speed of the robot

If the simulation software is installed, the actual trajectory of the robot can be simulated and analyzed in the simulation by importing the on-site robot into the simulation unit, and then targeted optimization. It should be noted that there may be differences between the robot speed value in the simulation and the actual robot speed value, but it can basically be used as a reference.

1. Analysis method 1 - Roboguide built-in speed recording function

The Roboguide software has a built-in speed recording function, use the [Run Panel] to execute the robot program, check the "Collect TCP Trace" option, after generating the track, in the [TCP Traces] interface, select "Color by Speed" to see it on the track to robot speed everywhere. From the figure below, it can be clearly seen that the speed of the robot is significantly reduced at each corner.
insert image description here

2. Analysis method 2 - Motion Pro option function

When installing the Roboguide software, you can choose to install the Motion Pro plug-in (should be authorized separately). According to EDOC, this plug-in can optimize the tempo, optimize the trajectory, optimize the life of the reducer and reduce power consumption. Since this plug-in has not been used, no specific introduction will be made. .
insert image description here

4. Analyze robot speed without using simulation software

1. Analysis method 3 - robot speed output function

This function is optional and needs to be purchased from FANUC; since this plug-in has not been used, no specific introduction will be given.
insert image description here

2. Analysis method 4——Karel procedure method

1. Related system variables

The system variables are as follows, set SCR_GRP[1].M_POS_ENB and M_DST_ENB to TRUE, then when the program is running automatically, the lower MCH_POS variable will update the TCP position in real time; the lower MCH_SPD variable will update the TCP speed in real time. Note that it will be updated only when it is running automatically, and the manual running program in teaching mode will not be updated.
It should be noted that if you just view the variables in real time, the speed value when the robot moves to a certain position may not be clear because the robot is too fast. In this case, you can lower the robot override to 10%-20%, then check the value of the variable, and multiply the speed value when running at this time by the corresponding ratio (for example, if it is 10%, then x10 times), you can get the robot The actual speed value when running at Override=100% speed.
insert image description here

2. The Karel program outputs the speed value to the register

By writing a Karel program, the robot speed can be output to the register, and then the speed list can be copied to the excel table through the NUMREG.VA file to generate a speed curve graph. This method can be used in actual robots.
insert image description hereinsert image description hereinsert image description here

3. Analysis method 5 - status-production interface real-time view

In some applications, the menu bar of the robot will have a status-production page. Under certain conditions, the real-time speed of the robot's TCP can be viewed on this page.
insert image description here

5. Examples of application cases

1. Inner panel sealant project of T company

Use the built-in speed recording function of Roboguide to analyze the running speed of the S-shaped trajectory taught by different commands. It is found that the debugging of the L command is too difficult, and the teaching point needs to be far away from the trajectory; the C command can fit the shape better, but the speed at the corner is significantly reduced; the A command can basically meet the requirements, and the coordinates of each point need to be fine-tuned. Finally, use the A command to debug and optimize to meet the customer's process requirements.
insert image description here

2. T company skirt glue project

Use the Karel program method to analyze the influence of the CNT value on the actual running speed of the robot. When confirming the side trajectory of the teaching skirt, you need to use CNT95-100 (preferably 100) to meet the glue application speed requirement of 2000mm/s.
insert image description here

3. Analysis of the influence of CNT on the acceleration of the robot

Using the Karel program method, the influence of different CNT values ​​on the speed when the test trajectory is completely consistent. It can be seen from the figure that when using different CNT values, the robot acceleration (curve slope) is exactly the same, so that a better understanding of the robot motion control can be obtained.
PARAM_GRP[1].ACCEL_TIME1[9] and PARAM_GRP[1].ACCEL_TIME2[9] define the acceleration time of each axis of the robot.
insert image description here

6. Karel program sharing of output speed value

The program description and code are as follows. How to write and use the specific karel program will be introduced later.

1. Program Description

1) This program is used to store the running speed of the robot to the register list during automatic operation.

2) Before using this program, you need to set the R[31]—R[35] registers.
R[31]: speed limit, unit mm/s. When the speed is lower than the speed, the speed value is sampled according to the interval of R[32]; when the speed is higher than the speed, the speed value is sampled according to the interval of R[33].
R[32]: Sampling interval 1, unit ms.
R[33]: Sampling interval 2, unit ms.
R[34]: Register number, that is, from which register to store the speed list.
R[35]: Trigger signal, that is, which DO signal = ON is used as the trigger to start storing the speed list; when the default setting is 0, the UO[3] Program Run signal is used as the trigger. If you only need to count the speed of a certain track, you can set the trigger signal.

2) After loading the program, set the system variable $KAREL_ENB to 1, and you can find the SPEED_OUTPUT program in the Karel program list; when using it, you only need to add the RUN SPEED_OUTPUT command at the beginning of the program.

2. Program code

PROGRAM speed_output
%NOLOCKGROUP
%COMMENT= 'Speed output to register'
%ALPHABETIZE

VAR
cur_speed:REAL
speed:INTEGER
delay_time1:INTEGER
delay_time2:INTEGER
delay_time:INTEGER
t_clock:INTEGER
cur_time:INTEGER
temp:INTEGER
reg_num:INTEGER
trigger_do:INTEGER
cur_time_str:STRING[8]
r_val:REAL
r_flg:BOOLEAN
signal_flag:BOOLEAN

BEGIN
	r_flg=FALSE
	signal_flag=FALSE
	GET_REG(31,r_flg,speed,r_val,temp)
	GET_REG(32,r_flg,delay_time1,r_val,temp)
	GET_REG(33,r_flg,delay_time2,r_val,temp)
	GET_REG(34,r_flg,reg_num,r_val,temp)
	GET_REG(35,r_flg,trigger_do,r_val,temp)
IF trigger_do>0 THEN
		signal_flag=TRUE
	ENDIF
	
	t_clock=0
	CONNECT TIMER TO t_clock
	Wait FOR UOUT[3]=ON
		
	WHILE UOUT[3]=ON  DO
		IF signal_flag=TRUE THEN
			WAIT FOR DOUT[trigger_do]=ON
		ENDIF		
		cur_speed=$SCR_GRP[1].$MCH_SPD
		IF cur_speed<speed  THEN
			delay_time=delay_time1
		ELSE
			delay_time=delay_time2
		ENDIF
		cur_time=t_clock
		CNV_INT_STR(cur_time,1,0,cur_time_str)
		SET_REG_CMT(reg_num,cur_time_str,temp)
		SET_REAL_REG(reg_num,cur_speed,temp)
		reg_num=reg_num+1
		DELAY delay_time
	ENDWHILE

Guess you like

Origin blog.csdn.net/u014537292/article/details/128089783