AN Commutation With ACS Drives
AN Commutation With ACS Drives
Application Note
December 2017
Document Revision: 1.10
Commutation with ACS Drives Application Note
C OPYRIGHT
Changes are periodically made to the information in this document. Changes are published as release notes and later
incorporated into revisions of this document.
No part of this document may be reproduced in any form without prior written permission from ACS Motion Control.
TRADEMARKS
ACS Motion Control, SPiiPlus, PEG, MARK, ServoBoost, NetworkBoost, and NanoPWM are trademarks of ACS Motion Control Ltd.
EtherCAT is registered trademark and patented technology, licensed by Beckhoff Automation GmbH, Germany.
Any other companies and product names mentioned herein may be the trademarks of their respective owners.
www.acsmotioncontrol.com
NOTICE
The information in this document is deemed to be correct at the time of publishing. ACS Motion Control reserves the right to
change specifications without notice. ACS Motion Control is not responsible for incidental, consequential, or special damages of
any kind in connection with using this document.
Revision History
Date Revision Description
Version 1.10 2
Commutation with ACS Drives Application Note
Format Description
Flagged Text
Warning - describes a condition that may result in serious bodily injury or death.
Version 1.10 3
Commutation with ACS Drives Application Note
Related Documents
Documents listed in the following table provide additional information related to this document.
The most updated version of the documents can be downloaded by authorized users from
www.acsmotioncontrol.com/downloads.
Online versions for all ACS software manuals are available to authorized users at ACS Motion Control
Knowledge Center.
Document Description
SPiiPlus Command & Variable Describes all of the variables and commands available in
Reference Guide the ACSPL+ programming language.
SPiiPlus MMI Application Explains how to use the SPiiPlus MMI Application Studio
Studio User Guide and associated monitoring tools.
Version 1.10 4
Commutation with ACS Drives Application Note
Document Description
Version 1.10 5
Commutation with ACS Drives Application Note
Table of Contents
1. Document scope 10
2. Introduction 11
2.1 Brush motor commutation 12
2.1.1 Mechanical versus electrical cycle 13
2.2 Brushless motor commutation 14
2.2.1 Sinusoidal commutation 14
2.2.2 Trapezoidal commutation 15
2.3 Stepper Motor 15
2.3.1 Stepper motor commutation 16
3. Useful ACSPL+ functions and commands 17
3.1 COMMUT 17
3.2 MFLAGS 18
3.3 SLCHALL 19
3.4 SLSTHALL 19
3.5 SLCOFFS 20
3.6 SLCORG 20
3.7 GETCONF 20
3.8 SETCONF 21
4. Commutation through Adjuster Wizard 23
4.1 A detent point commutation scheme 23
4.1.1 Adjuster Wizard setup with detent point 25
4.1.2 Generating commutation program in the SPiiPlus MMI Appplication Studio 28
4.1.3 Troubleshooting tips 29
4.1.3.1 Incorrect feedback setting 30
4.1.3.2 Incorrect motor setting 31
4.1.3.3 Incorrect motor wiring 32
4.1.3.4 Axes with limited travel 32
4.1.3.5 Adjusting commutation parameters 33
4.2 Absolute encoder commutation scheme 34
4.2.1 Adjuster Wizard setup with absolute encoder 34
4.2.2 Changing feedback position before commutation 34
4.3 Hall commutation scheme 35
4.3.1 Hall sensor compatibility 35
Version 1.10 6
Commutation with ACS Drives Application Note
Version 1.10 7
Commutation with ACS Drives Application Note
List Of Figures
Figure 2-1. Example of electromagnetic force 11
Figure 2-2. A simple rotary motor 12
Figure 2-3. Two phase brush motor 12
Figure 2-4. Comparison between a two-pole brush motor and a four-pole brush motor 13
Figure 2-5. Three-phase brushless motor 14
Figure 2-6. Relationship between current input to each phase and mechanical angle 15
Figure 2-7. Hall state transition in relation to a rotating magnet inside a brushless motor 15
Figure 2-8. Schematic of a stepper motor with phase 16
Figure 4-1. T phase missing from the motor 32
Figure 5-1. Repeatability 49
Version 1.10 8
Commutation with ACS Drives Application Note
List of Tables
Table 3-1. MFLAGS bit designators 18
Table 3-2. GETCONF return values 21
Table 3-3. 16-bit binary value template 21
Table 3-4. SETCONF Arguments 22
Table 4-1. Number of hall inputs per axis 35
Table 4-2. Expected logic level 39
Table 4-3. Additional commutation schemes 40
Version 1.10 9
Commutation with ACS Drives Application Note
1. Document scope
1. Document scope
The purpose of this document is to provide step by step instructions for setting up commutation
with ACS drives. This document covers the various schemes used to obtain commutation angle, or
the angle between the current vector and the magnetic field. It also provides basic troubleshooting
tips for commutation. This note is written with the assumption that the user has basic working
knowledge of the SPIIPLUS MMI APPLICATION STUDIO and that the INITIALIZATION, AXIS
ARCHITECTURE, and COMPONENTS tasks of the ADJUSTER WIZARD are configured properly.
For more details regarding basic setup and commutation, refer to the SPiiPlus Setup
Guide.
Version 1.10 10
Commutation with ACS Drives Application Note
2. Introduction
2. Introduction
Commutation is the process of adjusting current input to a motor in order to create continuous
motion. It is based on the principle of electromagnetism, which states that a force is generated
whenever there is current traveling in a magnetic field. An example of electromagnetic force is
illustrated below, where a wire is placed between two magnets. As current flows through the wire,
a downward force is generated based on the interaction of the moving electrons with the
magnetic field.
Where:
Version 1.10 11
Commutation with ACS Drives Application Note
2. Introduction
Since the magnet can only rotate, the torque generated is given by a the follwing scalar equation.
Where:
> is the torque produced
> is a constant
> is the magnetic flux density
> is the armature current
> is the angle between the current and the field vectors
If the current is static through the coil, then the magnet eventually stops rotating as it becomes
aligned with the magnetic field. This is similar to a compass which always points north. If the
direction for the flow of current is reversed, then the magnet realigns in the opposite direction.
The purpose of commutation is to continually adjust current input such that continuous motion
results. Two common methods for commutation are:
> Brush motor commutation
> Brushelss motor commutation
Version 1.10 12
Commutation with ACS Drives Application Note
2. Introduction
Whenever a power source is connected to the motor, a torque is generated based on the armature
current and the magnetic field. As the rotor spins, the torque output eventually becomes zero as
the current and field vectors become aligned. However, brush motors are designed such that the
direction of the current changes based on the position of the rotor.
For the brush motor illustrated in Figure 2-3, whenever the rotor rotates 180°, the commutator, or
contact point for the windings, switches between the two brushes. Since each brush carries a
different polarity, the result is a reverse in direction for the armature current which generates a
new torque in the same direction. For this reason, a brush motor does not require inputs from the
user or the drive.
Figure 2-4. Comparison between a two-pole brush motor and a four-pole brush motor
The more electrical cycles the motor has, then the smoother the motion becomes. An electrical
cycle is defined as a complete cycle between the magnetic poles from North to South. It is different
from the mechanical cycle, which represents a complete rotation of the shaft. To further
distinguish between the two, consider the two brush motors illustrated in Figure 2-4. For the two-
pole brush motor, there is only one pair of magnets. In this example, the number of mechanical and
electrical cycle is the same. For the four-pole brush motor, there are two pair of magnets. In this
example, there are two electrical cycles for every mechanical cycle. This relationship is generalized
by the following equation.
Where:
> is the number of electrical cycles
> is the number of poles
> is the number of mechanical cycles
Version 1.10 13
Commutation with ACS Drives Application Note
2. Introduction
Version 1.10 14
Commutation with ACS Drives Application Note
2. Introduction
Figure 2-6. Relationship between current input to each phase and mechanical angle
For this method to work, the direction of the magnetic field with respect to the feedback position
must be known. With ACS products, there are several ways to determine this relationship. This is
discussed in Commutation through Adjuster Wizard.
Figure 2-7. Hall state transition in relation to a rotating magnet inside a brushless motor
Although this method allows the motor to achieve continuous motion, the angle between the
magnetic field and the current vector is not always 90°. It can vary as much as ± 30°. This is a 13%
variation in torque output. For this reason, after the first hall transition is detected, an ACS drive
automatically switches to sinusoidal commutation to provide maximum motor efficiency.
Version 1.10 15
Commutation with ACS Drives Application Note
2. Introduction
Version 1.10 16
Commutation with ACS Drives Application Note
3. Useful ACSPL+ functions and commands
For more detail on the individual functions and commands, please refer to the SPiiPlus
ACSPL+ Command & Variable Reference Guide.
3.1 COMMUT
Description
COMMUT performs auto commutation and may be used when the following conditions hold true:
> The motor is DC brushless (AC servo)
> The motor is enabled
> The motor is idle
> The axis is set up and tuned
- Perform initial commutation adjustment
- Adjust the motor properly
- Save the adjustment parameters to the controller’s flash memory
Syntax
COMMUT axis [,excitation_current][,settle_time][,slope_time]
Arguments
Optional.
excitation_ Specifies the motor current used during auto commutation. The current is
current specified as a percentage of the full current command. The default value is
98% of XRMS.
Optional.
settle_
Specifies the settling time in the auto commutation process in milliseconds.
time
The default value is 500 msec.
Version 1.10 17
Commutation with ACS Drives Application Note
3. Useful ACSPL+ functions and commands
Optional.
slope_
Specifies the time that the excitation current rises from zero to the desired
time
value in milliseconds. The default value is 0.
Example
3.2 MFLAGS
Description
MFLAGS is an integer array, with one element for each axis in the system, each element of which
contains a set of bits used for configuring the motor.
Syntax
MFLAGS(axis_index).bit_designator = 0|1
Arguments
Designates the specific axis, valid numbers are: 0, 1, 2, ... up to the number of
axis_index
axes in the system minus 1.
bit_
For commutation, the relevant bit designators are given in Table 3-1.
designator
Version 1.10 18
Commutation with ACS Drives Application Note
3. Useful ACSPL+ functions and commands
Note:
#HALL applies only to DC brushless motors when #BRUSHL (bit 8) =1.
#HALL 27
0 (default): Commutation is not based on hall signals.
1: Commutation is based on hall signals.
Note:
#INVHALL applies only for DC brushless motors when #BRUSHL (bit 8)
#INVHALL 28 =1.
0 (default): Motor hall signals are non-inverted.
1: Motor hall signals are inverted.
3.3 SLCHALL
Description
SLCHALL is an integer array, with one element for each axis in the system, and serves for storing
the hall shift.
Comments
The ADJUSTER commutation program calculates this parameter and saves it.
3.4 SLSTHALL
Description
SLSTHALL is an integer array, with one element for each axis in the system, and is used for getting
the hall state of each axis.
Syntax
SLSTHALL(axis_index) = value
Arguments
Version 1.10 19
Commutation with ACS Drives Application Note
3. Useful ACSPL+ functions and commands
axis_ Designates the specific axis, valid numbers are: 0, 1, 2, ... up to the number of axes
index in the system minus 1.
Comments
The SLSTHALL variable’s value is being updated every cycle.
3.5 SLCOFFS
Description
SLCOFFS is a real array, with one element for each axis in the system, and defines a commutation
offset in electrical degrees to be added to the commutation phase.
Syntax
SLCOFFS(axis_index) = value
Arguments
axis_ Designates the specific axis, valid numbers are: 0, 1, 2, ... up to the number of axes
index in the system minus 1.
3.6 SLCORG
Description
SLCORG is a real array, with one element for each axis in the system, that defines the commutation
phase in electrical degrees at the point of origin which is usually at the index point.
Syntax
SLCORG(axis_index) = value
Arguments
axis_ Designates the specific axis, valid numbers are: 0, 1, 2, ... up to the number of axes
index in the system minus 1.
3.7 GETCONF
Description
GETCONF retrieves system configuration data that was configured by SETCONF.
Syntax
GETCONF(key,index)
Arguments
Version 1.10 20
Commutation with ACS Drives Application Note
3. Useful ACSPL+ functions and commands
Return Value
GETCONF return values are described in Table 3-2 according to key.
Table 3-2. GETCONF return values
Returns the current hall state, which can be 0, 1, 2, 3, 4, or 5, of the axis given by axis_
262 def (a number: 0, 1, 2, ... up to the number of axes in the system minus 1). It returns -1
for invalid states.
3.8 SETCONF
Description
SETCONF defines system configuration data.
All the keys that can be set by SETCONF listed in Table 3-4 can also be retrieved by GETCONF.
Syntax
SETCONF(key,index,value)
Arguments
The set of bit states for the defined key. value is set up according to a 16-bit binary
template, illustrated in Table 3-3. The controller strips all leading zeros. The
controller understands value in binary, hexidecimal, or decimal format.
The following prefixes determine value format:
value
0B - binary
0H - hexidecimal
A decimal value does not require any prefix.
3 3 2 2 2 ..
Bit 6 5 4 3 2 1 0
1 0 9 8 7 .
Version 1.10 21
Commutation with ACS Drives Application Note
3. Useful ACSPL+ functions and commands
Prefi
x
..
[0B] | 0 0 0 0 0 0 0 0 0 0 0 0
.
[0H]
value
Version 1.10 22
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
The following section assumes the axis and motor parameters are properly configured.
See SPiiPlus Setup Guide for information regarding motor setup.
The most common scheme is A Detent Point. It works with all types of feedback signals. The
procedure is described below.
1. An arbitrary static current vector is sent to the motor’s windings from the drive. The
amount of current sent is set based on the value stored for Excitation Current.
2. The rotor aligns itself with the current vector at this location, known as a detent point.
Version 1.10 23
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
3. The controller checks to see if the motor has stopped within the Settling Window Time.
4. The current vector rotates to a new detent point using the velocity specified as the Search
Velocity.
5. While the current vector is rotating, the location of magnetic poles is measured by a
feedback signal.
6. Once the rotor is aligned with the current vector, the actual pole pitch is compared to the
theoretical pitch calculated from the motor’s known parameters. If the deviation is
acceptable, the commutation passes, and the current vector is set perpendicular to the
motor’s magnetic field.
Version 1.10 24
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
2. Select the relevant axis by clicking the Axis Selector field and then select the axis from the
drop down list.
3. In the Adjuster Wizard Select Task window, select Axis Setup and Tuning > Commutation.
The Axis Setup and Tuning: Commutation window opens.
Version 1.10 25
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
4. Select Default.
5. Select a buffer by clicking the Run in Buffer selector field and then select the buffer from
the drop down list.
Select an empty buffer to run the commutation program. By default, the program is
stored in buffer 0, any existing buffer program stored in buffer 0 is written. This step is
necessary to update information from previous sessions stored in the wizard.
Make sure the axis has enough space for travel. By default, the stage will measure four
electrical cycles. If the axis cannot measure four electrical cycles, see Axes with limited
travel.
If the axis is configured correctly, the Commutation Program Printout should show that
commutation has succeeded.
Version 1.10 26
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
7. In the Adjuster Wizard Select Task window, select Save to Flash. The Save to Flash prompt
is displayed.
Version 1.10 27
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
At the beginning of each power cycle, the COMMUT command performs an auto
commutation of the motor. COMMUT retrieves the commutation angle of the motor
with minimal movement of the motor. This is the recommended method for
commutation after the axis is set up and tuned instead of running the A Detent Point
commutation program.
Version 1.10 28
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
4. Select Generate Startup Program. The Generate Startup Program window opens.
5. Select an empty buffer by clicking the Buffer field.
6. Select Generate.
After the commutation program is generated, it is run directly in the Program Manager of the
SPiiPlus MMI Application Studio.
Version 1.10 29
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
Version 1.10 30
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
If Calculate Parameters and Apply changes are not selected, then the parameters are
not updated in the controller!
2. Enter the correct magnetic pitch in the Pole Pitch Units field.
Version 1.10 31
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
If the motor specification does not mention if the magnetic pitch is given in terms of
full or half electrical cycle, contact the manufacturer. Alternatively, the motor pitch can
be measured directly using a caliper.
Version 1.10 32
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
2. Select User Defined in the Maximum Search Distance drop down list.
Commutation will pass as long as one magnetic pitch can be measured. If commutation
still fails, see Manual commutation for different Manual Commutation methods.
Version 1.10 33
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
By default, the Excitation Current is set to be 50% of the XRMS value. For systems with low
damping, a lower Excitation Current and a longer Settling Window Time are required to prevent
oscillations. On the other hand, for systems with high fiction, a higher Excitation Current are
required to overcome the static friction. In this case, the best approach is to gradually increase the
excitation current until it reaches 95% of XRMS. For a system with a heavy load or a large moment
of inertia, the Settling Window Time and the Search Velocity are adjusted to allow the axis enough
time to move and settle.
The procedure for setting up commutation with an absolute encoder is the same as A Detent Point
except for selecting Current Absolute Position for commutation scheme. Refer to "Adjuster Wizard
setup with detent point" on page 25 for the procedure.
Version 1.10 34
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
power up is 0. If encoder range is larger than 32 bits, EOFFS is a non-zero value based on the DSP
overflow.
In SPiiPlus ADK Suite v2.30, this flaw has been corrected and additional safety measures
implemented to prevent a run away condition.
Version 1.10 35
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
Version 1.10 36
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
There should be six hall states in total counting from 0 to 5. The direction of the signal
does not matter. If the hall signal rotates in the opposite direction of the current, the
Adjuster Wizard will automatically account for it.
4. Verify that the hall sensor is working by manually rotating the motor. The diagram shows
the expected hall state transitions.
In all SPiiPlus MMI Application Studio versions up to 2.29.04, the hall sensor dial does not
work properly. The dial only captures the hall state the moment the check box is
enabled. See Hall state signal verification for an alternative method for verification.
5. In the Adjuster Wizard Select Task window, select Axis Setup and Tuning > Commutation.
The Axis Setup and Tuning: Commutation window opens.
6. Select Hall Signals Transition in the RETRIEVE COMMUTATION PHASE AT field drop down list.
7. Select Start Commutation Program.
8. In the Adjuster Wizard Select Task window, select Save to Flash. The Save to Flash prompt
is displayed.
Version 1.10 37
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
Version 1.10 38
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
2. Manually move the motor. If the command returns -1, this indicates an invalid hall state.
3. For each invalid hall state, use a multimeter to measure the voltage level on each channel.
Table 4-2 lists the expected logic level for each hall state.
Table 4-2. Expected logic level
Version 1.10 39
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
2. If the command returns 0, this indicates that the hall sensor is disabled. In this case, rerun
the setup in the Adjuster Wizard see Adjuster Wizard setup with hall sensors.
Usually, this is performed by the Adjuster Wizard during the initial setup.
Scheme Process
First Index in Position 1. Moves to two detent points in the positive direction
Direction 2. Searches for index mark in positive direction
Version 1.10 40
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
Scheme Process
Powerup Position in the Adjuster Wizard is not currently available. See Manual
commutation for details on setting up the commutation angle manually.
For the index schemes, the motor moves by hard pulling the current vector until the index mark
triggers. Then, the controller stores the commutation angle in SLCORG. It is important to note that
SLCORG is not retrieved automatically. The stage needs to be commutated using the COMMUT
command and moved to the index mark. The purpose of this scheme is to reuse the same
commutation offset each time. This is useful for high friction stages, where the COMMUT command
cannot provide reliable results. For some stages, the only way to performa an encoder
Version 1.10 41
Commutation with ACS Drives Application Note
4. Commutation through Adjuster Wizard
commutation is to move the stage using stepper mode until the index mark is reached and then
set the commutation angle. The following is an example for setting SLCORG.
Version 1.10 42
Commutation with ACS Drives Application Note
5. Quick commutation
5. Quick commutation
To do a quick commutation use the COMMUT command. COMMUT retrieves the commutation angle
by sending three short current pulses to the motor and measuring the feedback response each
time. When using COMMUT, the entire commutation process takes less than two seconds and the
net movement of motor is a fraction of an electrical cycle. For these reasons, it is recommended to
commutate a motor using COMMUT in place of a full commutation scheme using A Detent Point.
COMMUT is done using closed-loop control. This requires the control loop to have at least 30 Hz of
bandwidth and proper stability (minimum 6dB gain margin, 30 degrees phase margin).
Version 1.10 43
Commutation with ACS Drives Application Note
5. Quick commutation
Alternatively, monitor the SP VARIABLE: COMMUTATION OFFSET during COMMUT to verify the
commutation result. For a system with loose tuning gain, the step response from each pulse is a
long settling time and often undershoots as shown in the scope below. In this case, increase, the
Settling Window for the COMMUT command.
Version 1.10 44
Commutation with ACS Drives Application Note
5. Quick commutation
The bode plot below shows an example of an axis with loose tuning gains.
For a system with stable tuning gains, the step response overshoots and converges quickly. The
following scope shows this behavior.
Below is the corresponding bode plot for the stable tuning gain example.
Version 1.10 45
Commutation with ACS Drives Application Note
5. Quick commutation
For an overly aggressive tuning gain, the step response oscillates. This is a good indicator of
instability.
The system above has a phase margin less than 30° and a gain margin less than 8 db, as shown in
the bode plot below.
Version 1.10 46
Commutation with ACS Drives Application Note
5. Quick commutation
Error 5102 is normally caused by an axis moving or being held in place while running using COMMUT.
Version 1.10 47
Commutation with ACS Drives Application Note
5. Quick commutation
The motor cannot provide any holding force/torque until the motor has finished commutating. In
this case, it is recommended to use hall sensors or to manually commutate the motor as detailed in
Manual commutation.
Specifying an excitation current higher than XRMS does not generate an over current
fault. The duration of each pulse is shorter than the time constant used to set off the
fault.
5.1.2.4 Hardstop
Although it is rare, error 5102 can also occurs by running the COMMUT command against a hard stop.
In this case, simply move the axis away from the limits before issuing the command again.
5.2 Repeatability
To ensure an axis has a “good” commutation angle, the user should verify that range of deviation
for the commutation angle is acceptable. For example, the following are results recorded at the
index mark for various COMMUT commands.
Version 1.10 48
Commutation with ACS Drives Application Note
5. Quick commutation
As shown in Figure 5-1, the commutation angle is different each time. However, as long as the
angle is within ±10°, there will be no noticeable drop in performance.
5.3 Optimization
A “bad” commutation angle is characterized by a reduction in the torque/force for a given amount
of current. For example, using various commutation angle offsets at the index mark, the following
are results recorded for a rotary axis jogging at 3600°/sec. Using the commutation angle obtained
from the COMMUT command, the measured current command averages out to be 2.41% of drive
peak, as shown by CH3 in the scope below.
Version 1.10 49
Commutation with ACS Drives Application Note
5. Quick commutation
By offsetting the commutation angle offset by 45°, running the same jog motion requires 1.6 times
the current required previously (3.86%).
For an even larger commutation angle offset (> 90°), the axis runs away. This triggers an
overcurrent or critical position error after enabling.
Version 1.10 50
Commutation with ACS Drives Application Note
5. Quick commutation
To optimize the commutation angle, the angle is set to a known location at each power up.
Afterward, SLCOFFS is adjusted until the current output is minimized for a given motion profile. If
desired, monitor the current output, the current command, or phase q current on the scope.
Version 1.10 51
Commutation with ACS Drives Application Note
6. Manual commutation
6. Manual commutation
In the event that commutation through the Adjuster Wizard cannot succeed due to a heavy load or
limited travel, then the axis can be manually commutated by sending a static current to the motor
or setting the commutation angle directly.
3. The commutation angle is shifted 90° from the detent point and the motor is disabled.
Version 1.10 52
Commutation with ACS Drives Application Note
6. Manual commutation
The following ACSPL+ code is used to implement the static current method and can be run directly
from the SPiiPlus MMI Application Studio Program Manager. Set the value of AXIS, Q_TURN, STEP_
SPEED, and S_CURRENT according to the user application.
Before running the commutation program, the user should verify that the encoder
and drive output is positive and in the same direction. If setting a positive DCOM value
causes the motor to move opposite of the expected direction, the drive output is
inverted by setting MFLAGS(AXIS).#INVDOUT = 1. Otherwise, the motor will run away as
a result of bad commutation.
INT AXIS;
REAL Q_TURN, STEP_SPEED, S_CURRENT;
DISABLE(AXIS)
MFLAGS(AXIS).#BRUSHOK = 0; !TURN OFF COMMUTATION BIT
DCOM(AXIS) = S_CURRENT; !SEND A CONSTANT DRIVE COMMAND INTO THE
MOTOR
ENABLE(AXIS); !ALIGN FIELDS
Version 1.10 53
Commutation with ACS Drives Application Note
6. Manual commutation
5. After a power cycle, the commutation angle will change and the BRUSHOK bit is set to 0.
6. Set the commutation angle manually by entering SETCONF(214,’AXIS’, ‘PREVIOUS VALUE’ -
90) and setting MFLAGS(‘AXIS’).#BRUSHOK = 1. This 90° offset is required, because the
commutation angle is shifted 90° whenever the BRUSHOK bit is set.
If the commutation is working correctly, use AUTOEXEC to set the angle after each power cycle.
Version 1.10 54
Commutation with ACS Drives Application Note
7. Gantry commutation
7. Gantry commutation
At the beginning of each power cycle, the motors in a gantry pair have to be commutated
separately. This is accomplished by turning off MFLAGS(‘AXIS’).#GANTRY for each motor and
enabling them one at a time for commutation. The commutation process is exactly the same as one
for a single motor. The only difference is that the controller gains will be different operating in
gantry and in non-gantry mode. For this reason, the user should keep the two sets of gains readily
available. See SPiiPlus True Gantry System Support Application Note for more detail.
Version 1.10 55
1 Hataasia St
Ramat Gabriel Industrial Park
Migdal Ha’Emek 2307037 Israel
Tel: (+972) (4) 654 6440 Fax: (+972) (4) 654 6443