Difference between revisions of "Pulse burst positioning"
From Granite Devices Knowledge Wiki
[checked revision] | [checked revision] |
(Created page with "step & direction signals, motor position and move done output as function of time.]] Pulse bu...") |
|||
Line 1: | Line 1: | ||
[[File:Burstpulses2.png|379px|thumb|Illustration of input [[Pulse and direction|step & direction]] signals, motor position and move done output as function of time.]] | [[File:Burstpulses2.png|379px|thumb|Illustration of input [[Pulse and direction|step & direction]] signals, motor position and move done output as function of time.]] | ||
− | Pulse burst positioning | + | Pulse burst positioning is a [[setpoint]] method based on [[pulse and direction]] signals. In pulse burst mode, [[controller]] need only to generate a burst of pulses with direction signal to begin a motion relative to current position. Motion will comply with pre-configured acceleration and velocity limits of the drive. |
;Pulse burst positioning properties | ;Pulse burst positioning properties | ||
− | *Simplicity - easy to understand and implement point-to-point motion | + | *Simplicity - easy to understand and implement point-to-point motion |
+ | *No real-time pulse train [[controller]] needed - smooth motion profile is generated inside the drive | ||
*Exact - [[setpoint]] signal path is fully digital | *Exact - [[setpoint]] signal path is fully digital | ||
− | * | + | *Change setpoint on the fly - not necessary to wait for motion to finish before sending new pulses |
==How to use== | ==How to use== |
Revision as of 12:26, 12 December 2013

Illustration of input step & direction signals, motor position and move done output as function of time.
Pulse burst positioning is a setpoint method based on pulse and direction signals. In pulse burst mode, controller need only to generate a burst of pulses with direction signal to begin a motion relative to current position. Motion will comply with pre-configured acceleration and velocity limits of the drive.
- Pulse burst positioning properties
- Simplicity - easy to understand and implement point-to-point motion
- No real-time pulse train controller needed - smooth motion profile is generated inside the drive
- Exact - setpoint signal path is fully digital
- Change setpoint on the fly - not necessary to wait for motion to finish before sending new pulses
Contents
[hide]How to use
Pulse burst is the minimalistic yet high performing position setpoint method available. Suitable signal may be generated by various means:
- PLC
- A simple timer & counter circuit
- Microcontroller GPIO pin
- Or any programmable device with controllable digital outputs
Practical example
Drive parameterization
In Argon the following configuration enables burst pulse mode:
- Set CM as Position control
- Set CRI as Pulse train & direction
- Set CAL and CVL to your desired acceleration and velocity values
- Wire J5 connector according to this diagram
Doing incremental move
The C-style code below represents the signaling.
void IncrementalMove( int distance ) { int i; /* set direction output pin */ if(distance<0) SetDirectionOutputPin(0); else SetDirectionOutputPin(1); /* send step pulses to start motion */ for( i=0; i< abs(distance); i++ ) { Delay_ms(0.001); SetPulseOutputPin(1); Delay_ms(0.001); SetPulseOutputPin(0); } }
- SetPulseOutputPin sets the digital state of HSIN1 pin on Argon
- SetDirectionOutputPin sets the digital state of HSIN2 pin on Argon
Monitoring when motion is complete
bool WaitForMoveDone( double timeout ) { double waited=0; while(waited<timeout) { if( GetMotionCompletePinState() == true ) return true; /* motion is now complete, return true*/ /*motion is not complete, wait some time and poll again*/ Delay_ms(0.01); waited=waited+0.01; } /*return false because timeouted */ return false; }
- GetMotionCompletePinState reads the GPO1 pin state from Argon
Usage example
IncrementalMove(500); WaitForMoveDone(); IncrementalMove(1000); WaitForMoveDone(); IncrementalMove(-1500); WaitForMoveDone();