Control plasma cutter's tip's distance from the part dynamically through feedback.

  • Hello!


    I have a Fanuc M-20iA/12L with a plasma cutter as an end effector.


    Currently the points on the cutting path are hardcoded. Our plasma cutter does provide a feedback based on distance from the part, and I would like to use this to continuously vary the distance between the part and my TCP. Is that something that anyone here has experience with?


    The feedback can be sent to the robot from the PLC as an integer, or really whatever unit the robot wants.


    Thanks for any help!

    Regards,

    -Cobotnik

  • I tried once AVC (also not free), helps with smaller speeds, when your cutting process is fast, the function will be too slow to follow, and sometimes robot's reaction is too late :smiling_face:

    What was your cutting/welding speed? I'm running at about 40-80mm/s.

  • Use Fanuc's dynamic path modification software option. It's not free, but it will do EXACTLY what you are describing to want to do.

    DPM seems really cool, have you used it in the past? What's your experience with it? Out of Analog/Group/Digital, which type would you recommend? I can use any, since I have a PLC which can also accept analog signals and make them grouped, or use an algorithm to give digital.


    Any comparisons with AVC?

  • What was your cutting/welding speed? I'm running at about 40-80mm/s.

    It was plasma cutting, my travel speed was around 40-60cm/min, which is around 10mm/s. In my opinion 40-80mm/s will be too fast for AVC. But I was making it with R-30iA, so maybe since now the function is also improved? I have no idea about it.

  • It was plasma cutting, my travel speed was around 40-60cm/min, which is around 10mm/s. In my opinion 40-80mm/s will be too fast for AVC. But I was making it with R-30iA, so maybe since now the function is also improved? I have no idea about it.

    Hmmm.

    I was able to get in touch with the Fanuc Robotics metal parting team, and they indicated that the newer DPM option with Modal path algorithm should be able to handle our speeds without an issue.

    I'm about to purchase the option, will post results as they come!

  • Or.... easy way, read the new offset and use the TCP offset in motion execution.


    May you have to use a parallel task in order to adjust the offset runtime fom a GI for example and then put the result of relative transformation in to a PR.


    Then you only have to use the PR register in to a "Tool Offset" condition in the same form of movement


    EX

    OFFSET CONDITION PR[ i ] (UFRAME[ j ])


    1: OFFSET CONDITION PR[ R[1] ]

    2: J P[1] 100% FINE

    3: L P[2] 500mm/sec FINE Offset



    It works.


    Ciao


    M

  • You cannot run two parallel task with that both have access to the same motion group.


    You cannot edit position registers without access to the motion group.


    Yes, offsets work, but as far as I know, you cannot simultaneously use and edit them.


    Do you have some other way of doing this?

  • It works, if you continuously perform a PR correction through karel it will be processed in runtime when the advanced pointer reads the "tool offset" attached to the move instruction.


    It is not necessary to add any privileges [or defined motion group/groupmask] to the second task, through karel it is overcome.


    May you only have to define the group for the pr, if you really need it


    It woks very well in my case.


    Regards


  • Set your all positions in Posistion Register (PR) - you can use hardcoded points if they are good. Why all? It's good for future little changes like moving your operational constructions or robot.


    Then use your feedback as offsets as well in PR


    if you are not familiar with it you should set it like this FOR EXAMPLE (in this case I guess Z is variable for you, all - within Z - can be 0 at the starting point)


    X 0.000 W 0.000

    Y 0.000 P 0.000
    Z 30.000 R 0.000


    The way i see it every coordinate should be "delivered" seperately like DI1 (X) DI2 (Y) and so on
    Then in non-motion program you set offset with inputs like


    PR[i,j] = [PR number, coord number]

    PR[1,1] for X = DI1
    PR[1,3] for Z = DI3
    PR[1,4] for W = DI4

    and so on


    I think you should store it all in one PR and then use as offset in your movement


    $$$ coming in

Advertising from our partners