Dynomotion

Group: DynoMotion Message: 3930 From: fireup_kev Date: 2/18/2012
Subject: CoordMotionInKFLOP
How do I get status of the buffer being executed?

Is CS0_TimeExecuted the same as ExecTime?

What is CS0_t?

How do I flush the buffer if I want to abort a move after I do a Feed Hold?

Thanks,
Kevin
Group: DynoMotion Message: 3934 From: Tom Kerekes Date: 2/19/2012
Subject: Re: CoordMotionInKFLOP
Hi Kevin,
 
CS0_TimeExecuted contains the sum of the times of all the completed segments for Coordinated Motion System 0.  CS0_t is the time variable for the currently executing segment (starts at zero for the segment).
 
The Script command ExecTime returns  CS0_TimeExecuted +  CS0_t
 
From within KFLOP you can call:
 
ClearStopImmediately()
 
To stop coordinated motion that is in a feedhold state.
 
HTH
TK

Group: DynoMotion Message: 3935 From: fireup_kev Date: 2/19/2012
Subject: Re: CoordMotionInKFLOP
Thanks Tom.

I'm also trying to implement SetBitBuf and ClearBitBuf. I have the following and seem to work but was not sure...

void SetBitBuf(unsigned char bit)
{
PARAMETRIC_COEFF *pCoordSys = &ParametricCoeffs[ParametricIndex];

pCoordSys->x_axis = 1; // 1 = set, 0 = clear
pCoordSys->y_axis = bit;
pCoordSys->t = 0;
pCoordSys->trajectory_mode = TRAJECTORY_SPECIAL;

if (++ParametricIndex == MAX_SEGMENTS)
ParametricIndex=0;
ParametricCoeffs[ParametricIndex].trajectory_mode =
TRAJECTORY_OFF;
}

How do I set/clear Virtual bits range (1024-2047)?

Thanks,
Kevin

--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Kevin,
>  
> CS0_TimeExecuted contains the sum of the times of all the completed segments for Coordinated Motion System 0.  CS0_t is the time variable for the currently executing segment (starts at zero for the segment).
>  
> The Script command ExecTime returns  CS0_TimeExecuted +  CS0_t
>  
> From within KFLOP you can call:
>  ClearStopImmediately()
>  
> To stop coordinated motion that is in a feedhold state.
>  
> HTH
> TK
>
> From: fireup_kev <kliboon@...>
> To: DynoMotion@yahoogroups.com
> Sent: Saturday, February 18, 2012 1:56 PM
> Subject: [DynoMotion] CoordMotionInKFLOP
>
>
>  
> How do I get status of the buffer being executed?
>
> Is CS0_TimeExecuted the same as ExecTime?
>
> What is CS0_t?
>
> How do I flush the buffer if I want to abort a move after I do a Feed Hold?
>
> Thanks,
> Kevin
>
Group: DynoMotion Message: 3936 From: Tom Kerekes Date: 2/19/2012
Subject: Re: CoordMotionInKFLOP
Hi Kevin,
 
Looks like you can't reach them with the current 8-bit field.  There are 16 virtual bits 48-63 can't you just use those?
 
Your routine looks correct to me.
 
Regards
TK

Group: DynoMotion Message: 3937 From: fireup_kev Date: 2/19/2012
Subject: Re: CoordMotionInKFLOP
Ok, thanks Tom. The 16 virtual should be enough for me. I just thought there might me something hidden that I don't see.

One more questions :)

Can you describe how does the low pass filter works?

KLP = exp(-TIMEBASE/Tau);

Does it blend small line segments so they perform like arcs?

Thanks,
Kevin



--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Kevin,
>  
> Looks like you can't reach them with the current 8-bit field.  There are 16 virtual bits 48-63 can't you just use those?
>  
> Your routine looks correct to me.
>  
> Regards
> TK
>
> From: fireup_kev <kliboon@...>
> To: DynoMotion@yahoogroups.com
> Sent: Sunday, February 19, 2012 9:09 AM
> Subject: [DynoMotion] Re: CoordMotionInKFLOP
>
>
>  
> Thanks Tom.
>
> I'm also trying to implement SetBitBuf and ClearBitBuf. I have the following and seem to work but was not sure...
>
> void SetBitBuf(unsigned char bit)
> {
> PARAMETRIC_COEFF *pCoordSys = &ParametricCoeffs[ParametricIndex];
>
> pCoordSys->x_axis = 1; // 1 = set, 0 = clear
> pCoordSys->y_axis = bit;
> pCoordSys->t = 0;
> pCoordSys->trajectory_mode = TRAJECTORY_SPECIAL;
>
> if (++ParametricIndex == MAX_SEGMENTS)
> ParametricIndex=0;
> ParametricCoeffs[ParametricIndex].trajectory_mode =
> TRAJECTORY_OFF;
> }
>
> How do I set/clear Virtual bits range (1024-2047)?
>
> Thanks,
> Kevin
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Kevin,
> >  
> > CS0_TimeExecuted contains the sum of the times of all the completed segments for Coordinated Motion System 0.  CS0_t is the time variable for the currently executing segment (starts at zero for the segment).
> >  
> > The Script command ExecTime returns  CS0_TimeExecuted +  CS0_t
> >  
> > From within KFLOP you can call:
> >  ClearStopImmediately()
> >  
> > To stop coordinated motion that is in a feedhold state.
> >  
> > HTH
> > TK
> >
> > From: fireup_kev <kliboon@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Saturday, February 18, 2012 1:56 PM
> > Subject: [DynoMotion] CoordMotionInKFLOP
> >
> >
> >  
> > How do I get status of the buffer being executed?
> >
> > Is CS0_TimeExecuted the same as ExecTime?
> >
> > What is CS0_t?
> >
> > How do I flush the buffer if I want to abort a move after I do a Feed Hold?
> >
> > Thanks,
> > Kevin
> >
>
Group: DynoMotion Message: 3938 From: Tom Kerekes Date: 2/19/2012
Subject: Re: CoordMotionInKFLOP
Hi Kevin,
 
Regarding KLP:  This is a very simple low pass filter function that would be much like adding a resistor/capacitor to an analog signal to smooth out the signal.  It is computed independently for each axis in the coordinated motion system (like one capacitor for each axis).  The result will be slightly rounded corners.  It is described here in the second section:
 
 
Regards
TK