How use MFRAME

  • I am a new user of Yaskawa robots and I am having some difficulties to create and manipulate Users Frames.


    I would like to create a user frame based on some positions (VarP) that I already have. I found in the manuals that this procedure can be done with MFRAME function, but it didn't work with the test code that I did in MotoSimEG. Following I paste an example code that I use:


    /JOB
    'COMM ROBOT NAME: HP20D
    //NAME testMFRAME
    //POS
    ///NPOS 3,0,0,0,0,0
    ///TOOL 0
    ///POSTYPE ROBOT
    ///RECTAN
    ///RCONF 0,0,0,0,0,0,0,0
    P0000=1127,200,0,180,-45,0
    P0001=1,0,0,0,0,0
    P0002=0,1,1,0,0,0
    //POS
    ///NPOS 1,0,0,0,0,0
    ///USER 3
    ///TOOL 0
    ///POSTYPE USER
    ///RECTAN
    ///RCONF 0,0,0,0,0,0,0,0
    C0003=0,0,0,0,0,0
    //INST
    ///DATE 2018/10/01 15:46
    ///ATTR SC,RW,RJ
    ///GROUP1 RB1,BS1,ST1
    NOP
    MFRAME UF#(3) P0000 P0001 P0002
    MOVJ C0003 VJ = 100 PL = 0 ' move to user frame
    END



    A second question is: how can I shift and rotate a user frame?


    Anyone can help me?

  • AD

  • Was this multiple jobs combined outside of the controller or EG environment? It has number of positions being 3 in one area and 1 in another. There is only 1 move in the job. Here is what I get recreating the job. I was using the default tool data of 0. Since the user frame is skewed your tool data may not allow the arm to get to the origin.


    You can shift the user frame by teaching 3 positions, you could teach 1 and calculate the other two. You could use a sensor, vision system, etc. to grab data to create the user frame. What is it you want to do?

  • I need to code it without using the visual tool of the simulator. I use the simulator only to check the code.


    Asking your question: I generated the frame coordinate system in another program and I am translating it. This inform code is a simple example, where I have the poses ( P0000, P001 and P002) and I need to transform it in a base frame to the movement C0003. As the C0003 is 0,0,0, the program will send the robot to the frame that I created. The problem is, the simulator does not create the frame that I set, it only works if I set the frame with the simulator interface.

  • The simulator being the Yaskawa off-line software? If so, the software is not creating/displaying your frame after running the job? What version and software are you using? MotoSim EG, MotoSim EG-VRC, etc.?

    I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

  • I will post you an example job of how i did it later when i get to the office.


    I used the motoman touch sence function to create position variables and then used the position variables to create a new user frame.


    Sent from my SM-J700F using Tapatalk


  • I will post you an example job of how i did it later when i get to the office.


    I used the motoman touch sence function to create position variables and then used the position variables to create a new user frame.


    Sent from my SM-J700F using Tapatalk


    Did u got it?

  • First, you can find the example in your INFORM INSTRUCTION MANUAL which like the shown below.


    MFRAME UF#(1) PX000 PX001 PX002
    For the job R1, the user coordinate number 1 is created according
    to three types of position data; P000, P001, and P002 of the user
    coordinate system.


    I just copy it for you, I think you can find you should replace the P with PX.


    Second, you can try to use MULMAT instruction to shift or rotate your UFRAM, but you need copy the UFRAM to a P variable, and then using MULMAT to calculate the result, finally, put the result back to your UFRAM.


    This is just my idea, you can have test.


    Good luck.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now