Help Needed on DPM Dynamic Path Modification

  • We are recently testing the DPM option on a Fanuc M10iD robot with 30iB controller. We got it moving with offset sent from the socket. However, unless the speed is really low, the robot movement is very jerky, almost violent, for example, 1mm for cycle, and the jerk frequency seem to be consistent with the 8msec ITP.

    From the outer set, it seems that the robot moved too fast at each offset command. The robot seem to be stopped before the next offset command, so it starts and stops at each cycle, resulting in violent vibration.


    I am familiar with similar function with Kuka, the RSI, where it has a PID setting that we can adjust the servo response. But for DPM, I don't see this option. Is there anyway we can adjust?


    Thanks in advance and have a good weekend!


    Jay

    Edited once, last by 4wheeled ().

  • I guess from using an offset that your Pos. Registers are unlocked? I have never used DPM but from what you describe the only thing similar that comes to my mind is trying to run a path when your moves all have offset to PR motion command and your Pos Regs are unlocked. Can you separate your commands into segments of commands, unlock your Pos Regs recieve the offset from the socket, lock Pos Regs, run the motion commands unlock P Regs update from socket etc ?

    When your Pos Registers are unlocked the robot cannot make use of its look ahead function as a safety measure. (your Pos Regs are unlocked so they can change anytime from any source, so the robot's motion planner reads the position register you use for offset and applies it to the motion line by line)

  • Do you have filtering enabled after the offset on the DPM screen? Also, have you played around with the $a1 and $a2 filter vars in each channel? The manual lists them as exponential filters, but fails to go into more detail.

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

  • I guess from using an offset that your Pos. Registers are unlocked? I have never used DPM but from what you describe the only thing similar that comes to my mind is trying to run a path when your moves all have offset to PR motion command and your Pos Regs are unlocked. Can you separate your commands into segments of commands, unlock your Pos Regs recieve the offset from the socket, lock Pos Regs, run the motion commands unlock P Regs update from socket etc ?

    When your Pos Registers are unlocked the robot cannot make use of its look ahead function as a safety measure. (your Pos Regs are unlocked so they can change anytime from any source, so the robot's motion planner reads the position register you use for offset and applies it to the motion line by line)

    I am not familiar with Pos lock and it is not mentioned in the DPM manual. I also don't know the inner work of DPM, but I'm guessing it is feeding the offsets received every ITP into its servo loop.


    The point I want to make is that, in my mind, traditionally, servo = PID. I think the jerk motion is a PID problem, but I don't see where I can tune the PID.


    I will definitely look up the Pos Reg. So thanks!


    Jay

  • Do you have filtering enabled after the offset on the DPM screen? Also, have you played around with the $a1 and $a2 filter vars in each channel? The manual lists them as exponential filters, but fails to go into more detail.

    Yes I noticed that, but I don't know what they are for as it is never explained. But I'm guessing it is something of the exp(-a1*t/tau1) type, probably influences some kind of impulse response.


    I did try to change the _cfg.$bef_jbf from FALSE to TRUE. But when I did that, it stopped moving. So I changed it back.

  • I am not familiar with Pos lock and it is not mentioned in the DPM manual. I also don't know the inner work of DPM, but I'm guessing it is feeding the offsets received every ITP into its servo loop.

    Haven't worked with DPM myself. But would like to read more about it. I did look on the internet for a DPM manual, but couldn't find any. It would be very kind if you could send me the manual please; i will PM you my e-mail adress.

  • Isn't the analog channel of which scale you can change?

    No, its the scale of input to the DPM schedule. It could be analog, or in your case a Karel var. In my case it was a group input sent from the PLC. My pitch correction wasn't responding quick enough, so I dropped the scale, and that solved the issue.

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

  • Haven't worked with DPM myself. But would like to read more about it. I did look on the internet for a DPM manual, but couldn't find any. It would be very kind if you could send me the manual please; i will PM you my e-mail adress.

    The PDF is attached.


    ** PDF removed by Moderator - Please do not post Fanuc documentation **

  • No, its the scale of input to the DPM schedule. It could be analog, or in your case a Karel var. In my case it was a group input sent from the PLC. My pitch correction wasn't responding quick enough, so I dropped the scale, and that solved the issue.

    I double checked the manual, it looks like the SCALE would apply to the group digital input, the GI type. But in my case, it is the SV type, system variable from Karel. For the SV type, since the offset is already expressed through the system variable, I don't see how and why we need to apply a scale factor to it.

  • Happy Holidays, anyone still reading the tech forum?


    It looks like very few people actually have much experience with DPM. But I still hoping someone with the real experiences could give us a hand.


    Thanks and very much appreciated!

  • You are correct, this option is implemented rarely. I've only used in on one job out of my entire career. You may have to contact Fanuc directly.


    It would help if you posted what your settings and use case are. Also how are writing to the DPM system vars with your Karel program. You may have to write a software PID in there.


    Did you end up messing with the $a1 and $a2 filtering variables?

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

  • You are correct, this option is implemented rarely. I've only used in on one job out of my entire career. You may have to contact Fanuc directly.


    It would help if you posted what your settings and use case are. Also how are writing to the DPM system vars with your Karel program. You may have to write a software PID in there.


    Did you end up messing with the $a1 and $a2 filtering variables?


    No we haven't tried the $a1 & $a2 yet. We can try it after the holiday.


    As for the settings, we followed this demo: https://github.com/gavanderhoorn/fanuc_dpm_mouse_demo

Advertising from our partners