190 likes | 481 Views
SPiiPlus Training Class. Stepper Control Modes. Stepper Motors. Stepper motors are electric motors that can provide many benefits to an application including: Open loop operation (no position sensor) Good holding torque Relatively inexpensive Can act as a cheap DC brushless motor
E N D
SPiiPlus Training Class Stepper Control Modes
Stepper Motors Stepper motors are electric motors that can provide many benefits to an application including: • Open loop operation (no position sensor) • Good holding torque • Relatively inexpensive • Can act as a cheap DC brushless motor However, there are several disadvantages that should be considered including: • Resonances from stepping • Large torque ripple • Always draws current / power (when running in open loop)
Stepper Motor: Microstepping Microstepping: • Energize both windings, but with currents 90° out of phase • Magnet will align according to the ratio of phase A to phase B currents
Stepper Motor: Commutation Commutation: • Treats stepper has high pole count DC Brushless • Difference is that two phases are 180° out of phase
UDM Wiring UDM Stepper Motor R S T
UDM Limitations Because the UDM only uses a 6 transistor bridge (as opposed to an 8 transistor bridge), there are a few limitations that should be noted. • The maximum output voltage is 0.707 * bus voltage • The effective peak drive current† is 0.707 * peak drive current † All current limits (XCURI, XCURV and XRMS) are percentages of effective drive peak current
Important ACSPL+ Variables When you setup a stepper motor using the Adjuster Wizard, the low level ACSPL+ variables are set automatically. The following is a list of the important variables: • MFLAGS().2 (#MICRO) • ON if running stepper motor in micro-step mode • MFLAGS().6 (#STEPENC) • ON if micro-step mode stepper motor has encoder feedback • MFLAGS().10 (#PHASE2) • ON if the controlled motor has 2 phases • SLCPRD() • In micro-step mode, it defines the number of micro-steps per rev • In closed-loop mode, it defines the number of encoder counts per rev • STEPF() • In micro-step mode, it defines the user units per micro-step • SLCNP() • Number of equivalent poles (full steps / 2)
Operation Mode: Open Loop In open loop mode, the stepper motor is driven as a normal micro-stepping motor. • Standard ACSPL+ motion commands (PTP, JOG, etc) are used to command the motion profile • Standard motion parameters (VEL, ACC, etc) are used to control the motion profile. The winding current is controlled as follows: • At idle, XCURI defines the amount of current • In motion, XCURV defines the amount of current In open loop mode, it is possible to lose steps.
Operation Mode: Open Loop Verification It is possible to improve the accuracy and repeatability of the stepper motor positioning by using an encoder for verification. Verification mode: • At idle, if steps are lost, a simple verification servo is used to correct the position • In motion, the motor runs as a normal open loop stepper An ACSPL+ program is necessary to implement the verification.
Operation Mode: Open Loop Verification !!! Variable Declarations globalreal ST_PE ! position error globalreal ST_OUT ! output of servo loop globalreal ST_KP ! proportional gain globalreal S_LIM ! max correction rate globalint AXIS! axis number !!! Variable Initialization AXIS = 4 S_LIM = 900 ST_KP = 10 ST_OUT = 0 ST_PE = 0 !!! Disable to start DISABLE (AXIS) !!! Reset position error SETAPOS(AXIS) = FPOS(AXIS) SETPE(AXIS) = 0 !!! Toggle default connection bit MFLAGS(AXIS).17 = 1 MFLAGS(AXIS).17 = 0 ! Allow non-default connection !!! Setup connect function CONNECTRPOS(AXIS) = APOS(AXIS) + ST_OUT DEPENDS (AXIS),(AXIS) !!! Enable and run verification program ENABLE (AXIS) while 1; block ! Calculate position offset ST_PE = APOS(AXIS)-FPOS(AXIS) ! Check if commanded motion complete if ((APOS(AXIS)-DAPOS(AXIS)) = 0) ! Update correction output ST_OUT=ST_OUT+sat(ST_KP*ST_PE,-S_LIM,S_LIM)*CTIME/(1000/CTIME) end end; end STOP ! Reset correction output when disabled ON ^MST(AXIS).#ENABLED; ST_OUT=0;ret
Operation Mode: Closed Loop It is possible to run a stepper motor like a high pole count DC brushless motor under closed loop control. Closed Loop Mode: • Requires motor commutation† • Requires normal closed loop tuning • When there is no position error, there is no motor current (i.e. no holding torque) Setup and tuning is done using the Adjuster Wizard † It is required to have adequate commutation resolution. At a minimum, there should be 100 encoder counts per motor pole (10,000 counts per rev for a 200 step motor)
Stepper Control Mode Example: 1 Use the Adjuster Wizard to setup axis 4 in open loop mode. When the motor is enabled, try to move it by hand out of position.
Stepper Control Mode Example: 2 Modify the setup of axis 4 so that it can use encoder feedback for verification. Use the ‘Programming XX – Stepper Motor Verification.prg’ program to setup the verification correction. When the motor is enabled, try to move it by hand out of position.
Stepper Control Mode Example: 3 Use the Adjuster Wizard to setup axis 4 in closed loop mode. When the motor is enabled, try to move it by hand out of position.