1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. Yaskawa Motoman Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

Question Regarding Yaskawa DX200: How to Update Z-Height on a User Frame?

  • Stig Lindberg
  • November 8, 2024 at 3:42 PM
  • Thread is Unresolved
  • Stig Lindberg
    Trophies
    3
    Posts
    10
    • November 8, 2024 at 3:42 PM
    • #1

    Hi

    Is there anyone who can help me with a method to update the Z-height of a user frame during a program?
    I’m working with surface milling on plastic parts, which can vary in height, and to ensure a consistent milling depth, I’d like to be able to adjust the Z-height, similar to "zeroing" on a surface in a CNC mill.

    I’d prefer to avoid using a laser sensor or similar equipment and instead adjust the reference point manually, if possible. I’ve looked into various inform commands but haven’t found a solution.
    Does anyone have experience with updating only the Z-height of a user frame on a Yaskawa DX200?
    Additionally, if this functionality requires unlocking through a paid option, should I reach out to Yaskawa for assistance with enabling it? Any tips or advice would be greatly appreciated!

    Best regards
    SL

  • 95devils
    Reactions Received
    231
    Trophies
    8
    Posts
    1,945
    • November 8, 2024 at 4:05 PM
    • #2

    Teach the user frame in XYZ in 3 position variables. Use the MFRAME instruction to create the frame. Since you want to do this manually, type in the Z value in the p-variables and run the instruction.

    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.

  • roboprof
    Reactions Received
    24
    Trophies
    4
    Posts
    467
    • November 8, 2024 at 5:07 PM
    • #3

    Use MFRAME command under ARITH.

  • Stig Lindberg
    Trophies
    3
    Posts
    10
    • November 8, 2024 at 8:49 PM
    • #4
    Quote from 95devils

    Teach the user frame in XYZ in 3 position variables. Use the MFRAME instruction to create the frame. Since you want to do this manually, type in the Z value in the p-variables and run the instruction.

    Thanks for respond.

    I’ve now added the MFRAME instruction to a job, selected user frame 60, and chosen PX105, PX106, and PX107. I updated P105 with data from the origin position, P106 with the XX position, and P107 with the XY position.

    My question is, should I go into each of these P-variables to manually adjust the Z height to update user frame 60 accurately? When I tested it, I noticed that if I only updated P105 (the origin), the user frame began to tilt, which won’t work if my CAM program needs a flat frame.

    Is there a way to add an INFORM code before P105, P106, and P107 to update only the Z height in these three P-variables via another variable? My goal is to create an offset for the original user frame without affecting its level.

    What I want to achieve is to bring the robot’s tool down close to the plastic surface and manually adjust it until it’s just above the surface, using a piece of paper to gauge the distance for the Z-axis. This way, I can create a precise Z-offset, which may be positive or negative, depending on the needs of the setup.

    Maybe I’m making this more complicated than necessary, but I hope you can help guide me in the right direction.

  • BCinTN
    Trophies
    2
    Posts
    12
    • November 8, 2024 at 10:13 PM
    • #5

    You can use a single P Variable to define a frame. Using your original frame use the following to create the position in the frame, make your adjustments and then update the frame. This will keep the original rotation of the frame and allow you to move the frame in XYZ. I just used UF#1 as an example. P111 is the position and angle of the user frame. P111 will be updated to the new BF Coordinates. Leave the SETE's to 0 the first time running to update the P111 with the BF Coordinates

    ///TOOL 0
    P00111=-794.226,-596.704,-1094.307,180.0000,0.0000,0.0000

    CNVRT LP0001 P111 UF#(1)
    SETE LP0001 (1) 0
    SETE LP0001 (2) 0
    SETE LP0001 (3) 0
    SETE LP0001 (4) 0 /Keep at 0 unless you want to adj the angles
    SETE LP0001 (5) 0 /Keep at 0 unless you want to adj the angles
    SETE LP0001 (6) 0 /Keep at 0 unless you want to adj the angles
    CNVRT P111 LP0001 BF
    MFRAME UF#(1) P111 BF

  • Stig Lindberg
    Trophies
    3
    Posts
    10
    • November 8, 2024 at 11:28 PM
    • #6
    Quote from BCinTN

    You can use a single P Variable to define a frame. Using your original frame use the following to create the position in the frame, make your adjustments and then update the frame. This will keep the original rotation of the frame and allow you to move the frame in XYZ. I just used UF#1 as an example. P111 is the position and angle of the user frame. P111 will be updated to the new BF Coordinates. Leave the SETE's to 0 the first time running to update the P111 with the BF Coordinates

    ///TOOL 0
    P00111=-794.226,-596.704,-1094.307,180.0000,0.0000,0.0000

    CNVRT LP0001 P111 UF#(1)
    SETE LP0001 (1) 0
    SETE LP0001 (2) 0
    SETE LP0001 (3) 0
    SETE LP0001 (4) 0 /Keep at 0 unless you want to adj the angles
    SETE LP0001 (5) 0 /Keep at 0 unless you want to adj the angles
    SETE LP0001 (6) 0 /Keep at 0 unless you want to adj the angles
    CNVRT P111 LP0001 BF
    MFRAME UF#(1) P111 BF

    Display More

    Thank you very much for your help, it works!

    However, I would like to know if it is possible to modify SETE LP0001 (3) 0 so that 0 is controlled by a P variable, for example P116.

  • potis
    Reactions Received
    1
    Trophies
    3
    Posts
    245
    • November 11, 2024 at 11:54 AM
    • #7

    if you want to make 0 all the values in one line you can use the SUB command

    SUB LP001 LP001

    and place all the calculation in a System job to run continuously.

    The change of the frame will only work if you mill with 3 axis. In the case that you mill with 3d movement in space then it is better to recalculate the tool in the Z axis with the paid function PMT and SETTOOL command.

  • BCinTN
    Trophies
    2
    Posts
    12
    • November 11, 2024 at 10:31 PM
    • #8
    Quote from Stig Lindberg

    Thank you very much for your help, it works!

    However, I would like to know if it is possible to modify SETE LP0001 (3) 0 so that 0 is controlled by a P variable, for example P116.

    Yes, you can make any of those a Variable. You could use the GETE D001 P116 (3) and replace the


    GETE D001 P116 (3)

    SETE LP0001 (3) D001

  • Stig Lindberg
    Trophies
    3
    Posts
    10
    • November 12, 2024 at 1:52 PM
    • #9

    Thanks for your help, with your assistance I was able to achieve what I wanted with my question. I've played around with the code a bit and have come up with the following which solves what I wanted, but my question now is: I can see in MotoSim that user frame 63 is correctly updated by P116, but the actual user frame 63 under the 'Robot' menu is not updated in pulse, which means if I jog the user frame, the robot just goes back to its home position. What did I do wrong in my code?

    /JOB
    //NAME CNC_ZOFFSET
    //POS
    ///NPOS 0,0,0,1,0,0
    ///TOOL 5
    ///POSTYPE ROBOT
    ///RECTAN
    ///RCONF 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
    P00116=1206.282,220.974,-175.742,164.3503,89.9910,164.3515
    //INST
    ///DATE 2024/11/12 13:38
    ///ATTR SC,RW
    ///GROUP1 RB1
    ///LVARS 0,0,0,0,0,5,0,0
    NOP
    GETE D005 P116 (3)
    MFRAME UF#(63) P116 BF
    END

  • BCinTN
    Trophies
    2
    Posts
    12
    • November 12, 2024 at 5:58 PM
    • #10

    Pulse positions do not work with a UF, They only read the encoder positions. The position needs to be defined as a UF#63 or converted to the UF#63, to be adjusted by moving the UF#63.

    The only way to convert from pulse to XYZ is with the relative Job, as far as I know. Maybe someone with more knowledge about that subject can answer. That is a paid option.

  • Stig Lindberg
    Trophies
    3
    Posts
    10
    • November 15, 2024 at 4:28 PM
    • #11
    Quote from BCinTN

    Pulse positions do not work with a UF, They only read the encoder positions. The position needs to be defined as a UF#63 or converted to the UF#63, to be adjusted by moving the UF#63.

    The only way to convert from pulse to XYZ is with the relative Job, as far as I know. Maybe someone with more knowledge about that subject can answer. That is a paid option.

    I’m truly grateful that you and others have taken the time to help me. It has helped me move forward and given me the support I needed right now. I’m self-taught with the DX200, so there’s still a lot for me to learn. I’ve already created several jobs using user frames and P-variables to dynamically calculate the size of a circle, which can be updated via the I/F panel. However, I really want to improve my understanding of height measurement for workpieces, as this is often the part that creates challenges in my daily work.

    My main issue is that the workpieces I deal with are made of plastic and tend to vary in height. When I need to mill contour paths into the workpiece, they need to be as consistent as possible. That’s why I’m looking for a method to quickly update my program with a Z measurement and adjust the height. My contour files usually contain around 2000 steps and are spread across multiple files, so updating the Z height using the Parallel Shift Job takes an eternity. It would be much faster for me to simply update the user frame and move on quickly.

    I understand that this requires converting all my files into relative jobs, which I luckily have access to. However, I often wonder why such a feature isn’t standard on an expensive machine like this, especially when you can find it on small, affordable 3-axis CNC machines with a Z-block for leveling the starting point. I wish I could get a tool setter for my machine—maybe it’s possible, and I’ve just overlooked it.

  • Online
    jarm
    Reactions Received
    10
    Trophies
    4
    Posts
    258
    • November 15, 2024 at 6:11 PM
    • #12

    what's the matter with using a shift. Change the z in pvar and run it. Just add the sfton pvar and sftof around the code you want to shift. To bad your parts are plastic. Touchsense or a spotlaser could have made the entire process automatic.

    Edited 3 times, last by jarm (November 15, 2024 at 6:21 PM).

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download