Pulse burst positioning
![](/w/images/3/32/Burstpulses2.png)
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.
Contents
Pulse burst positioning properties[edit | edit source]
- 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
How to use[edit | edit source]
Pulse burst is the minimalistic yet high performing position setpoint method available. Suitable signal may be generated by various means:
- PLC with at least two digital outputs
- A simple timer & counter circuit
- Microcontroller GPIO pin
- Or any programmable device with controllable digital outputs
Practical example[edit | edit source]
Drive parameterization[edit | edit source]
In Argon the following configuration enables burst pulse mode:
- Set Control modeCM as Position control
- Set Setpoint inputCRI as Pulse train & direction
- Set Acceleration limitCAL and Velocity limitCVL to your desired acceleration and velocity values
- Wire J5 connector according to this diagram
Doing incremental move[edit | edit source]
The C-style code below generates the signaling.
void IncrementalMove( int distance ) { int i; /* set direction output pin */ if(distance<0) SetDirectionOutputPin(0); else SetDirectionOutputPin(1); /* generate step pulses to start motion. quantity of pulses = distance */ for( i=0; i< abs(distance); i++ ) { Delay_ms(0.001); /* wait 1 microseconds or more */ SetPulseOutputPin(1); Delay_ms(0.001); /* wait 1 microseconds or more */ 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[edit | edit source]
Returns true when motion has successfully finished. False if timeout expired or drive faulted.
bool WaitForMoveDone( double timeout ) { double waited=0; while(waited<timeout) { if( GetMotionCompletePinState() == true ) return true; /* motion is now complete, return true*/ if( GetFaultPinState() == true ) return false; /* drive is in fault state, return false*/ /*motion is not complete, wait some time and poll again*/ Delay_ms(10); /* 0.01 seconds */ waited=waited+0.01; } /*return false because timeouted */ return false; }
- GetMotionCompletePinState reads the GPO1 pin state from Argon
- GetFaultPinState reads the GPO3 pin state from Argon
Usage example[edit | edit source]
IncrementalMove(500); WaitForMoveDone(); IncrementalMove(1000); WaitForMoveDone(); IncrementalMove(-1500); WaitForMoveDone();
In no event the Product Information or parts hereof shall be regarded as guarantee of conditions or characteristics. The Product Information or any part thereof may also not be regarded as a warranty of any kind. No liability of any kind shall be assumed by Author with respect to Product Information or any use made by you thereof, nor shall Author indemnify you against or be liable for any third party claims with respect to such information or any use thereof.
As content of this Wiki may be edited by user community, Granite Devices Oy or it's affiliates do not take any responsibility of the contents of this Wiki. Use information at your own risk. However, Granite Devices staff attempts to review all changes made to this Wiki and keep information trustworthy.
Without written consent, Granite Devices' Products or Intellectual Property shall not be used in situations or installations where living beings, material property, or immaterial property could be harmed by the operation, features or failures of Product. Products may only be used in a way where hazards like moving parts, electric shock, laser radiation, or fire can't be realized even if the content of this Wiki would suggest otherwise.