The purpose is that you can perform calculations with it.
For example calculating offsets, if you don't need the first two offsets, you can start with R[5] = 3, and then use R[5] for the calculations.
Posts by dewitm
-
-
When the value in R[13] for example is 8, the code between the FOR/ENDFOR will be carried out 8 times. (From 1 to
-
The register will update too soon when you use CNT movements. I had to build a program which was called with distance before 0 mm or time before 0 sec. You can use an AR[] to write the value in the register, which is used in the called program.
This improved the updating of the register a lot, but it is still not perfect.
-
Strangely enough, it does differ for some situations.
When you have a CNT 100, you cut a corner. I expected to change a given R at the half of the cutted corner. However, it turned out it was at the beginning of the cutting corner.
When I added something like DB, DA or TB, TA with a very small value, the R was changed more accurate near the half of the cutted corner. -
Could you provide us a situation-sketch. At this moment I can imagine 4 or 5 different set-ups which would stick to your explanation, but they all need a different solution.
-
If you have licensed Roboguide, you could do a backup of the controller and try it out in simulation.
-
If you are known with basic programming, you could try URScript.
On the webpage of Universal Robot you can find manuals about this.For example:
set_digital_out(1, position_deviation_warning(True))set_digital_out is the command to set a signal
1 is to corresponding outputnummber
position_deviation_warning(True) = crash detectionHowever, it seems the position_deviation_warning(True) doesn't return a value, so this might not be the solution. But look through the manual and you might find the solution there.
I know there are options where you can return the state wether robot is running or not. But I don't know if this function works with collision. (Collision would be not running) -
Perhaps you could try to monitor the DI only and than in your main program use the SKIP or BREAK command with every move-instruction. When condition is true, the movement stops, your program will jump to assigned lbl and you are in safe position.
If you want to be able to continue at the same position, you could use PR[x] = LPOS before moving to safe position. Then with restart you could start at that location and continue in your program.
-
This part of the forum is for Universal Robots, Motoman has its own section.
-
Even if you could address to the correct array numbers, you only would read the force at that moment, it is not realtime. Or you would make a loop with a extremely small movement and check it again and again.
I would try next:
Quote
while (Force_Z<20N and Force_rZ<20)
movel[]
Force=get_tcp_force
Force_Z=Force[2]
Force_rZ=Force[5]
endIf you make the movement of movel[] very smal, for example 0.02mm in Z-direction with a very small rotation in RZ, you would continiously check the values.
-
Hello,
An operator of the robot came this morning to me, saying the robot crashed into a product.
In just a few seconds I saw the cause of this problem.
They operate the robot in the programming environment (still beta fase, we will change to "operate environment" after a few weeks).One operator input is set up as type Whole Number, with the question "How many products".
Somebody (I don't really care who) changed this type to "Textstring". When I looked in the variables tab, I saw: "2", instead of: 2
So I looked into the command and saw this modification.However, my expectation would've been that the program would've stopped before starting because of the comparison of Texstring vs Integer instead of Integer vs Integer.
Could someone explain to me why I could compare two different data types? And what is the integer value of the textstring "2"? Because the robot did the first 2 products OKAY and crashed after that.EDIT: Found the ASCII table where char 2 represents a decimal value of 50. Still strange the comparison is possible, could lead to dangerous situations...
Kind regards..
-
Break or Skip i would say
-
Important to clearify what you REALLY want:
- Checking values of Registers, PR's, I/O can be done via Web server and is very very easy.(Not paid option)
- Only monitoring can be done bij Remote Monitoring, which you will find in the advanced options of your manual. As already said, you need IE for that and it is quite a bitch to get it up and running. (Not paid option)
- Remote control is paid option and mentioned already -
Is by hand in the URFRAME menu not sufficient? You can go to the desired Uframe, go to one of the three points and do a move to.
-
Ok, thx all! :), Space Function, BG Logic and if else will affect me the most.
-
We've had this issue before. Turns out we had to change a controller board, don't remember which one.
-
There's also haptic feedback now. Try not to drop the teach pendant the first time you experience it.Haptic feedback how? When you crash the robot the pendant starts to vibrate?
-
Hello,
Could somebody explain to me the main differences between the R30iA and R30iB. I mean the practical differences.
We have to integrate new models together with old models and offcourse our preference is the same way of programming for all the robots.Thanks in advance
-
Why looking at the controller while the mistake is/could be on the other side?
On a project my co-worker was responsible for the PLC while I was responsible for the Fanuc. After an update of the PLC-program, my controller froze. He was sending a shitload of data to the controller. After he corrected his mistake, there was no more freezing.
Try to find out what has changed since the freezing started.
-
Could you make screenshots where you open variable 703 and 704? My guess is that 703 has a variable which is enabled, which is disabled in 704.
This means that 704 is not active en cannot be compiled.