Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Want to change speed every 1metre

Hi,

      I am working on a PXI-1045 using 7344 motion card, what i want to do is load different speeds(velocity) alternatingly.The functions i am using are

flex_load_velocity and flex_load_velocity_override. I still don't get the required velocity. Please suggest me a solution.

 

Thank you.

0 Kudos
Message 1 of 6
(4,007 Views)

Hi,

 

flex_load_velocity_override() should work, but you can't determine the exact position, when to adjust the velocity. In your usecase blending is probably the better approach. In blending mode the acceleration of a consecutive move starts as soon as the deceleration of the first move begins. Thus you could split your whole move into 1 metre parts and load the move constraints for each consecutive move while the current move is executed. During the blend operation the velocity profiles get superimposed (current velocity values of both moves add up). By varying the accleration and velocities, you get very good control about the transition between the two velocities.

 

 

 

I hope this helps,

Jochen Klier

National Instruments

 

 

 

 

 

 

Message Edited by Jochen on 05-08-2009 11:22 AM
0 Kudos
Message 2 of 6
(4,003 Views)

Hello Jochen,

                       In my application i am using flex_blend() function. But still velocity is not accurate. What i am doing here is loading high and low velocity alternately.

 

How can split move?  Please explain.

 

Thank you

Sheetal

 

 

0 Kudos
Message 3 of 6
(3,999 Views)

Sheetal,

 

what do you mean by "velocity is not accurate"? How do you measure it? How is your mechanical setup? Could you please provide some data?

When I suggested to split the move, I meant, that instead of starting a single move with e. g. 10 m length, split the move into 10 moves with 1 m length. In blendign mode this allows you to vary the velocity for each move.

 

Jochen

0 Kudos
Message 4 of 6
(3,996 Views)

Hi,

      As you suggested about spliting  the moves, thats exactly what i am doing. About the speed being shown, an application and a hardware is built for exchange of the signals from

the chassis to the system. My problem here is it takes time for the speed to rise and fall can that be reduced? And also it does not work for high speeds why?

 

Thank you

Sheetal. 

0 Kudos
Message 5 of 6
(3,975 Views)

Sheetal,

 

due to physical limitations a velocity change always needs some time. You can decrease this time by increasing the values for acceleration and deceleration, but of course this is only possible within the physical limiations of the motor. If the time is too long for your application and you can't decrease it by changing accel/decel ramps, you have probably reached the current limit of your drive (could this be increased?) and/or the torque/current limit of your motor (maybe you need a stronger motor).

 

The time between two blend operations can't be indefinitely short. While the first move is running, the parameters for the second move need to be loaded. If the moves are too short or if the velocity is too high, new parameters haven't arrived at the board. This could be a valid explanation for the effect that you are seeing. Please check the design of your application for options to speed up the blend operations (e. g. there might be too long wait statements).

 

Jochen

0 Kudos
Message 6 of 6
(3,969 Views)