December 12, 2018, 08:05:45 PM
Robotforum | Support for Robotprogrammer and Users


Author Topic: Matching motion speed to external reference  (Read 1368 times)

0 Members and 1 Guest are viewing this topic.

March 09, 2018, 10:31:10 PM
Read 1368 times
Offline

bigmatt


Good afternoon,

We are in the process of installing a R2000iA/125L (RJ3IB controller) on an injection molding machine.  We are looking for a method of matching the robots motion speed during one linear move to the ejectors that push the part out of the mold.  This speed is not always constant through the part cycle or from part to part.

It is possible to put an encoder on the ejectors and feed that thru the PLC running the press to the robot (Ethernet IP) as a reference.  We would prefer to keep any logic within the robot to limit additional variables so this option is less than desirable.

We also thought of monitoring the torque on a given motor and increasing or decreasing the speed if the motor torque is above or below a given value.  This is the option we like the best but we are not sure where to start with the programming or if it is even possible.

Our main concern is damage to the robot.  These are old molding machines and once you start the eject cycle there is no stopping it other than an e-stop.  With 12" of ejection stroke if we overload an axis and stall the robot in the first inch of travel the molding machine will continue to push the robot the remaining 11" without hesitating.  The robots we are replacing (gantry style) have this same issue and we have blown out bearings with one mistyped number.

Thanks in advance for any advice,

Matt

March 10, 2018, 02:05:01 PM
Reply #1
Online

HawkME


What about linear compliance. Think of a tool that floats on linear rails with a spring or regulated air cylinder to provide some resistance.

Sent from my SM-G930V using Tapatalk


March 10, 2018, 03:03:25 PM
Reply #2
Offline

jstolaruk


Is the ejector motion fluid power (pneumatic or hydraulic)?  Or Servo?

March 10, 2018, 06:34:30 PM
Reply #3
Offline

pdl


Research Soft Float, it is exactly what you need.  It will offer compliance in one or more vectors while your press is ejecting.  It was designed specifically for this type of application.

Cheers

March 10, 2018, 06:51:57 PM
Reply #4
Offline

bigmatt


Thanks for the replies.

I spent the last few days building a compensator setup.  Linear bushings with a pneumatic cylinder providing force.  It looks impressive but any out of square loading causes it to bind.

The ejector is a hydraulic driven.

 I will research the soft float option.  Does it maintain linear motion?  We discussed this with our fanuc rep and they said it worked more on an individual joint motion, not on multiple joints at one time. 

Thanks again,

Matt

March 10, 2018, 07:15:31 PM
Reply #5
Offline

Nation


Line Tracking might be a good (albeit unconventional) fit for this. The robot matches its position to a provided encoder input at a very low level in the servo loop, so there would be little delay in the move.
Check out the position converter I wrote here!

March 10, 2018, 07:40:33 PM
Reply #6
Online

HawkME


Did you use a rod alignment coupler on the cylinder?

Sent from my SM-G930V using Tapatalk


March 12, 2018, 11:54:28 AM
Reply #7
Offline

bigmatt


Thank you Again,

I will look into line tracking.  Also, we did use an alignment coupler on the rod end and a spring steel mount for the cylinder mount to ensure we did not bind the cylinder.  Even with the cylinder removed the linear bushings are binding with slight side loading.

Matt

March 12, 2018, 05:17:04 PM
Reply #8
Online

HawkME


I think you would have better  luck with a profiled linear rail and bearings instead of the bushings.

Sent from my SM-G930V using Tapatalk


March 12, 2018, 06:30:58 PM
Reply #9
Offline

bigmatt


I agree.  Linear bearings are on order, however I would still like to know if there is any option for doing this within the program without purchasing the Soft Float option (being quoted from Fanuc).

I looked into it more today and I think it would be possible with the following:

Within a BG program Monitor the disturbance force on a given axis.
Compare this to a nominal value for the given EOAT.
If it is higher or lower increase or decrease the override speed as required.

The BG program would only be active during the eject cycle, allowing command of the robot speed through the pendant during the remainder of the cycle.

It is a Monday so firefighting machine startups has taken priority and I have only been able to spend a few minutes on this.  My big question is can I monitor the disturbance as a parameter? 

Thanks again for all the suggestions,

Matt

March 13, 2018, 01:08:16 AM
Reply #10
Online

HawkME


It seem's plausible that you could do this, but has a couple issues:

1. How do you test this without causing a collision and damage? Seems like it would be difficult to get the speed and torque setting just right.
2. When a collision occurs or an over-current fault, the robot will stop and be pushed by the machine. That is not a great way to fail.

March 13, 2018, 03:12:15 AM
Reply #11
Offline

bigmatt


The robot over current fault is what I’m trying to avoid.  My thought is when the torque value reaches a given value (say 25%) of max I increase the override speed until the torque value drops because the robot is now moving faster than the ejectors.  I then slow down the movement away from the mold until the torque value rises again.  It will require some trial and error and the only way to make it work is with a bg program that scans independently from the tp program.

My biggest hurdle so far is finding the parameter for the current torque value.  The only example I have founded uses parameter $MOR_GRP[1].$CUR_DIS_TRQ[4] for group 1, joint 4.  However I get an invalid error with this argument.  If I can get the disturbance torque into a register I can at least test my idea.  Any suggestions on what parameter to use would be appreciated.  I assume I need to copy this to a register before I can use it in any comparison equations, correct?

March 13, 2018, 08:36:51 AM
Reply #12
Offline

rf103


Just curious, so asking: I'm allways up for coming up with custom solutions, but is there any reason you're not going for softfloat? As others have mentioned, it was created for exactly this sort of situation.

From your description it sounds like you're trying to implement a 'poor mans version' of softfloat, by essentially implementing a similar sort of control loop through the sysvars and a TP program.

March 13, 2018, 10:03:44 AM
Reply #13
Offline

bigmatt


I sent in an rfq for softfloat yesterday, just waiting on pricing.  I’m a stubborn SOB and I would like to know if this concept would work. 

March 13, 2018, 02:00:36 PM
Reply #14
Offline

pdl


The standard price is listed at $1200 currently.

March 13, 2018, 08:55:30 PM
Reply #15
Offline

bigmatt


So to close this out, I was able to get the robot to react the way I wanted today after a few minutes with Fanuc tech support.  I originally insert a R[]=... command into the program.  This gave me a parameter invalid error.  I had to insert the command as a  ...=$... under the miscellaneous selection. 

The full string was R[2]=$MOR_GRP[1].$CUR_DIS_TRQ[4]

This copied the disturbance torque value to a register.  I set the program up with simple greater than a desired value increased the override speed and less than a desired value lowered the override speed.  This was ran as a background program during a linear move.  The result was when I pushed on the EOAT the robot increased speed away from me and when I quit pushing the EOAT slowed down. 

We are still pursuing different bearings for our linear compensator but UPS misplaced our order so we have to wait for those to come in.  This is still our primary plan but it is good to have a backup.

Thanks for all the help,

Matt