Offset move to Curve start without a "Clunk" RESOLVED

2 posts in this topic

I'm trying to ramp up from zero to enable a NJ calculated random curve to never produce a negative position point:


Calling the move "Offset", and using a MC_MoveAbsolute fb, the idea is to trigger the curve generating ST to start when the move reached 50mm.  (Wanted the variable "Ready" to go TRUE at the end of the ramp to 50mm)  .. Then, MC_SyncMoveAbsolute fb would continue from there, sending streaming position data to the LinMot Linear motor.

As seen above.

But, there's a problem.  Initially, I used the MCMoveAbsolute.Done to start the ST curve move sequence, which also ramps amplitude from zero, over a period of 3 seconds:

Offset + [(a number that goes from 0 to 1.0 in 3 seconds) * (the mathematically generated position curve)]   The result is a "clunk" at the transition of the end of the ramp and the start of the curve.

Not sure when "Done" happens... started to think perhaps it's when the fb is finished making the command to move, and not when the move has actually finished.

So I tried an IF_THAN:  


That was kinda silly, because the ramp final position never reached 50mm ... "Ready" never set to TRUE ...  close, but no cigar.

So the next step was use a Round instruction that actually monitors the position of the slider: and a EQ instruction that compares the two, and issues a "Ready" command to start curve the curve program:


This produced the Minor Fault:  Axis 0x543B0000 Motion Control Instruction Re-Exicution Disabled

Now I'm thinking this can't work because "Ready" will only be TRUE when the the curve hits 50mm (which is quite often, after it starts running ... 50mm being the new zero)

However, It did start the curve sequence.. but nothing moved because of the fault...

Soooo.. The question is: How can I do a smooth transition from the end of an Offset move to the start of the curve? 

Or.. better still...How is an "Offset" normally done to any curve generating routine?

Thanks much, Regards, Michael

PS:   Here's a look at what's happening when I tried using State Tracker... and something to compare actual position at the end of the Offset move, and the start of the random sea curve:



RSStart is the variable that powers the Random Sea ST program, and the SyncMoveAbsolute fb that drives the motor.  Cycle time is 1ms. 

Probably would be quieter if I could 500us .. but the NJ is only a 101-1000



FYI... Delta Motion's RMC75E Motion Controller can make the Random Sea using LinMot's B1100-VF drive .. as quiet as a mouse.  But then, I think that controller has a cycle time of 1us!  

Wondering if there's a problem with Direction or BufferMode:


_emc_Direction#_mcNoDirection or _eMC_Buffer_Mode#_mcAborting ???? 

Thanks for any ideas on the "Clunk" ... I may have to live with the "singing" ... sniff!  .... or use a Delta Motion Motion Controller ..




Edited by lamboom

Share this post

Link to post
Share on other sites

Now, I'm thinking the ramp (Offset) ought to be in the ST curve program.. Do away with the MC_Move Absolute & just make it part of the curve equation (hate it when "just" gets used in a sentence)

It seemed easier to use one of the MC fb's ..   Fine, I'll "Just" write an Offset routine into the curve equation.

Unless you know of a better way :-)

........Perhaps: MC_SyncOffsetPosition fb ?

Edited by lamboom

Share this post

Link to post
Share on other sites

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