July 15, 2019, 06:29:22 PM
Robotforum | Industrial Robots Community

 FRAME instruction

normal_post Author Topic:  FRAME instruction  (Read 347 times)

0 Members and 1 Guest are viewing this topic.

April 15, 2019, 07:21:17 AM
Read 347 times


hello everyone,

I've the robot moving material from(to) a matrix 5x4 where the spacing between the elements is 250 mm but, the problem is that the matrix (actually a table) is not parallel and perpendicular to the base of the robot, so i had to find the straight line function for both X and Y axis to compensate the variations by using a shift function
as follows:

         POINT billet2 = on_corner_grip_
         FOR row = 0 TO 4
           FOR col = 0 TO 3
             POINT billet2 = SHIFT(on_corner_grip_ BY 250*row+2*col,-248*col+1.5*row,0)
             JMOVE billet2
             OPEN 2
             DELAY 3
             DRAW ,,-213
             CLOSE 2
             DELAY 2
             DRAW ,,500
             JMOVE facing_table_gr
             CALL vl_2
             JMOVE billet2
             DRAW ,,-215
             OPEN 2
             DELAY 1
             DRAW ,,500
        JMOVE facing_table_gr

I'd like to solve the problem using the FRAME function to eliminate "the offsets" and do steps of exactly 250mm instead to be using a mathematics function to compensate the errors but i am a bit lost about how to do it....could anyone give me a hand with it?
The other thing that i'd like to ask (sorry about me asking two question in the same post), how can i start the program with values different than ZERO for ROW and COL?
For example ROW =3 and COL =2 , without to modify the program, as this would allow me to initiate the program from any position of the matrix, instead to start always from the same point

thank in advance

Today at 06:29:22 PM
Reply #1



April 15, 2019, 04:58:32 PM
Reply #1



Here is a FRAME example. I wouldn't do the program with FOR function, you can use the CASE function instead.

At your example ROW =3 and COL =2 you can have 2 variables, i and j.

i = 3
j = 2

FOR row = i TO 4
           FOR col = j TO 3

I would use the Case function like in example2.

April 15, 2019, 07:27:52 PM
Reply #2


Global Moderator
It's all about relativity and depends how conversant you are with Kawasaki and Co-ordinates.

Yes, have a look at the FRAME command, but also consider the TRANS command too.
Check out the AS Manual for these commands.....there's some good information contained about relative locations.
- The SHIFT command is applied to the current location along/parallel to the current BASE....not the location.
- The TRANS command is applied to the current location along/parallel to the location and the OAT values (angle/rotation) of the location.
- If your reference position is correctly aligned to the table in all planes, then the frame does not need to be used.
- This can be achieved by aligning the TCP vectors to the table in all planes.

To have a closer look at the TRANS Command - move the robot to the reference location (assumes the TCP is correctly set).
- Select TOOL Interpolation.
- Rotate around Z so that you align your row/col directions with the X and Y of the TCP and teach the reference location.
- In this position, using JMOVE billet2+TRANS(250*row,250*col,0) will accomplish what you need without the FRAME.
- Either row or col will use a negative value more than likely if you adopt this approach.
« Last Edit: April 15, 2019, 07:36:40 PM by kwakisaki »

April 15, 2019, 10:18:00 PM
Reply #3


Hello again

thanks for the answers kwakisaki and Alexandru , I appreciate your time guys
I will take a look at them


Share via facebook Share via linkedin Share via pinterest Share via reddit Share via twitter