Upload
kevin-blaner
View
217
Download
0
Embed Size (px)
Citation preview
7/27/2019 Pilot Prog Reference
1/123
Performance Motion Devices, Inc.
55 Old Bedford Road
Lincoln, MA 01773
Pilot Motion Processor
Programmers Reference
Revision 1.6, November 2002
7/27/2019 Pilot Prog Reference
2/123
Pilot Motion Processor Programmers Reference
ii
NOTICE
This document contains proprietary and confidential information of Performance Motion Devices,Inc., and is protected by federal copyright law. The contents of this document may not be disclosed
to third parties, translated, copied, or duplicated in any form, in whole or in part, without the expresswritten permission of PMD.
The information contained in this document is subject to change without notice. No part of thisdocument may be reproduced or transmitted in any form, by any means, electronic or mechanical,for any purpose, without the express written permission of PMD.
Copyright 2000 by Performance Motion Devices, Inc.Navigator, Pilot, and C-Motion are trademarks of Performance Motion Devices, Inc
7/27/2019 Pilot Prog Reference
3/123
Pilot Motion Processor Programmers Reference
iii
Warranty
PMD warrants performance of its products to the specifications applicable at the time of sale inaccordance with PMD's standard warranty. Testing and other quality control techniques are utilizedto the extent PMD deems necessary to support this warranty. Specific testing of all parameters ofeach device is not necessarily performed, except those mandated by government requirements.
Performance Motion Devices, Inc. (PMD) reserves the right to make changes to its products or todiscontinue any product or service without notice, and advises customers to obtain the latest versionof relevant information to verify, before placing orders, that information being relied on is currentand complete. All products are sold subject to the terms and conditions of sale supplied at the timeof order acknowledgement, including those pertaining to warranty, patent infringement, andlimitation of liability.
Safety Notice
Certain applications using semiconductor products may involve potential risks of death, personalinjury, or severe property or environmental damage. Products are not designed, authorized, orwarranted to be suitable for use in life support devices or systems or other critical applications.
Inclusion of PMD products in such applications is understood to be fully at the customer's risk.In order to minimize risks associated with the customer's applications, adequate design and operatingsafeguards must be provided by the customer to minimize inherent procedural hazards.
Disclaimer
PMD assumes no liability for applications assistance or customer product design. PMD does notwarrant or represent that any license, either express or implied, is granted under any patent right,copyright, mask work right, or other intellectual property right of PMD covering or relating to anycombination, machine, or process in which such products or services might be or are used. PMD'spublication of information regarding any third party's products or services does not constitute PMD'sapproval, warranty or endorsement thereof.
7/27/2019 Pilot Prog Reference
4/123
Pilot Motion Processor Programmers Reference
iv
Related Documents
Pilot Motion Processor Users Guide (MC3000UG)
How to set up and use all members of the Pilot Motion Processor family.
Pilot Motion Processor Programmers Reference (MC3000PR)
Descriptions of all Pilot Motion Processor commands, with coding syntax and examples, listedalphabetically for quick reference.
Pilot Motion Processor Technical Specifications
Four booklets containing physical and electrical characteristics, timing diagrams, pinouts, and pindescriptions of each series:
MC3110, for brushed servo motion control(MC3110TS);MC3310, for brushless servo motion control(MC3310TS);MC3410, for micro-stepping motion control(MC3410TS);MC3510, for stepping motion control(MC3510TS).
Pilot Motion Processor Developers Kit Manual (DK3000M)
How to install and configure the DK3000 developers kit PC board.
7/27/2019 Pilot Prog Reference
5/123
Pilot Motion Processor Programmers Reference
v
Table of Contents
Warranty...................................................................................................................................................... iii
Safety Notice ................................................................................................................................................ iii
Disclaimer..................................................................................................................................................... iii
Related Documents...................................................................................................................................... iv
Table of Contents.......................................................................................................................................... v
1 The Pilot Family ........................................................................................................................................ 7
2 Instruction Reference................................................................................................................................ 92.1 How to use this reference ............................................................................................................... 9
3 Instruction Summary Tables................................................................................................................ 117
3.1 Descriptions by Functional Category ......................................................................................... 1173.2 Alphabetical Listing ................................................................................................................... 1213.3 Numeric Listing.......................................................................................................................... 123
7/27/2019 Pilot Prog Reference
6/123
7/27/2019 Pilot Prog Reference
7/123
7/27/2019 Pilot Prog Reference
8/123
Pilot Motion Processor Programmers Reference
8
Introduction
This manual describes the format of instructions supported by the Pilot family of Motion Processorsfrom PMD. These devices are members of PMDs third-generation motion processor family. Eachof these devices is a complete chip-based motion processor. They provide trajectory generation andrelated motion control functions. Depending on the type of motor controlled, they provide servoloop closure and on-board commutation for brushless motors. Together these products provide asoftware-compatible family of dedicated motion processors that can handle a large variety of systemconfigurations.
Along with similar hardware architecture, these chips also share most software commands, so thatsoftware written for one chip may be re-used with another, even though the type of motor may bedifferent.
The chip is a 132-pin device, surface mount CMOS technology.
The different chips in the Pilot family are designed for a particular type of motor or control scheme.Here is a summary description of each.
Family Summary
MC3110 - This single-chip, single-axis motion processor outputs motor commands in eitherSign/Magnitude PWM or DAC-compatible format for use with brushed servo motors, or withbrushless servo motors having external commutation.
MC3310 This single-chip, single-axis motion processor outputs sinusoidally commutated motorsignals appropriate for driving brushless motors. Depending on the motor type, the output is a two-phase or three-phase signal in either PWM or DAC-compatible format.
MC3410 This single-chip, single-axis motion processor outputs microstepping signals for steppingmotors. Two phased signals per axis are generated in either PWM or DAC-compatible format.
MC3510 This single-chip, single-axis motion processor outputs pulse and direction signals forstepping motor systems.
7/27/2019 Pilot Prog Reference
9/123
Pilot Motion Processor Programmers Reference
9
2 Instruction Reference
2.1 How to use this reference
This document is in two parts: first, a detailed description of all host instructions, and second, a setof summary tables listing the instructions by functional group, alphabetically by instructionmnemonic, and numerically by hexadecimal code.
In the reference section, instructions are arranged alphabetically, except that all "Set/Get" pairs (forexample, SetVelocity and GetVelocity)are described together. Each description begins on a newpage; most occupy no more than a page. The page is organized as follows:
Name The instruction mnemonic is shown at the left, its hexadecimal code at the right.
Syntax The instruction mnemonic and its required arguments are shown with allarguments separated by spaces.
Arguments There are two types of arguments: encoded-field and numeric.
Encoded-field arguments are packed into a single 16-bit data word, except foraxis, which occupies bits 11-8 of the instruction word. The Name of theargument is that shown in the generic syntax. Instance mnenomic used torepresent the data value. Encoding is the value assigned to the field for thatinstance.
For numeric arguments, the parameter Value, the Type (signed or unsignedinteger) and Range of acceptable values are given. Numeric arguments mayrequire one or two data words. For 32-bit arguments, the high-order part istransmitted first.
Buffered Certain parameters and other data written to the chip are buffered, that is, theyare not acted upon until the next Update command is executed. These parametersare identified by the word buffered in the instruction heading.
Packet structure This is a graphic representation of the 16-bit words transmitted in the packet: theinstruction, which is identified by its name, followed by 1, 2, or 3 data words. Bitnumbers are shown directly below each word. For each field in a word, only thehigh and low bits are shown. For 32-bit numeric data, the high-order bits arenumbered from 31 to 16, the low-order bits from 15 to 0.
The hex code of the instruction is shown in boldface.
Argument names are shown in their respective words or fields.
For data words, the direction of transferread or writeis shown at the left ofthe word's diagram.
Unused bits are shaded. In data words and instructions sent (written) to themotion processor, all unused bits must be 0 .
Description Describes what the instruction does and any special information relating to theinstruction.
Restrictions Describes the circumstances in which the instruction is not valid, that is, when itshould not be issued. For example, velocity, acceleration, deceleration, and jerkparameters may not be issued while an S-curve profile is being executed.
see Refers to related instructions.
7/27/2019 Pilot Prog Reference
10/123
Pilot Motion Processor Programmers Reference
10
AdjustActualPosition F5h
Syntax AdjustActualPosition axis position
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
position signed 32 bits -231to 231-1 unity counts|steps
Packet structure AdjustActualPosition0 axis F5h
15 12 11 8 7 0
First data word
write position (high-order part)31 16
Second data word
write position (low-order part)
15 0
Description Theposition specified as the parameter to AdjustActualPosition is summed withthe actual position register (encoder position) for the specified axis. This has theeffect of adding or subtracting an offset to the current actual position. At the sametime, the current commanded position is replaced by the new actual position valueminus the current actual position error. This prevents a servo "bump" when the newaxis position is established. The destination position (see SetPosition) is alsomodified by this amount so that no trajectory motion will occur when the updateinstruction is issued. In effect, this instruction establishes a new reference positionfrom which subsequent positions can be calculated. It is commonly used to set aknown reference position after a homing procedure.
Note: On the MC3410 the current actual position error is zeroed.
Restrictions AdjustActualPosition takes effect immediately, it is not buffered.
see GetPositionError; GetActualVelocity, Set/GetActualPositionUnits,Set/GetActualPosition
7/27/2019 Pilot Prog Reference
11/123
Pilot Motion Processor Programmers Reference
11
ClearInterrupt ACh
Syntax ClearInterrupt
Arguments none
Packet structure ClearInterrupt0 ACh
15 8 7 0
Description ClearInterrupt resets the HostInterrupt signal to its inactive state. If interrupts arestill pending, the HostInterrupt line will return to its active state within one cycle. Itis used after an interrupt has been recognized and processed by the host. Thiscommand does not affect the Event Status Register. If this command is executedwhen no interrupts are pending it has no effect.
Restrictions
see GetInterruptAxis, Set/GetInterruptMask
7/27/2019 Pilot Prog Reference
12/123
Pilot Motion Processor Programmers Reference
12
ClearPositionError buffered 47h
Syntax ClearPositionError axis
Arguments Name Instance Encoding
axis Axis1 0
Packet structure ClearPositionError0 axis 47h
15 12 11 8 7 0
Description ClearPositionErrorsets the current profile's commanded position equal to theactual position (encoder input), thereby clearing the position error for the specifiedaxis. This command can be used when the axis is at rest, or when it is moving. Ifit is used when the axis is moving the host should be aware that the trajectorydestination position (used in trapezoidal and s-curve modes) is not changed by thiscommand.
Restrictions ClearPositionErroris a buffered command. The new value set will not take effectuntil the next Update instruction is entered.
This command cannot be executed while the chip is performing an s-curve profile.
see GetPositionError, Set/GetPositionErrorLimit, Update
7/27/2019 Pilot Prog Reference
13/123
Pilot Motion Processor Programmers Reference
13
GetActivityStatus A6h
Syntax GetActivityStatus axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data status see below
Packet structure GetActivityStatus0 axis A6h
15 12 11 8 7 0
Data
read15 13 12 11 10 9 8 7 6 5 3 2 1 0
Description GetActivityStatus reads the 16 bit activity status register for the specified axis.Each of the bits in this register continuously indicate the state of the chip withoutany action on the part of the host. There is no direct way to set or clear the state ofthese bits, since they are controlled by the chip.
The following table shows the encoding of the data returned by this command.
Name Bit Number Description
Phasing initialized 0 Set to 1 if phasing is initialized (MC3310only)
At maximumvelocity
1 Set to 1 when the trajectory is at maximumvelocity. This bit is determined by thetrajectory generator, not the actual encoderposition.
Tracking 2 Set to 1 when the axis is within the
tracking windowCurrent profilemode
3-5 Contains trajectory mode encoded asfollows:bit 5 bit 4 bit 3 Profile Mode0 0 0 trapezoidal0 0 1 velocity contouring0 1 0 s-curve
reserved 6 not used, may be 0 or 1Axis settled 7 Set to 1 when the axis is settledMotor on/off 8 Set to 1 when motor mode is on, 0 when
off.Position capture 9 Set to 1 when a value has been captured
by the high speed position capturehardware but has not yet been read. The
GetCaptureValue command must beexecuted before another capture can occur.
In-motion 10 Set to 1 when the trajectory generator isexecuting a profile on the axis.
In positive limit 11 Set to 1 when the positive limit switch isactive
In negative limit 12 Set to 1 when the negative limit switch isactive
7/27/2019 Pilot Prog Reference
14/123
Pilot Motion Processor Programmers Reference
14
Name Bit Number Description
Profile segment 13-15 Only used during S-curve profile mode.Contains value of 0 when the profile is atrest. Contains phase number 1-7 whenprofile is in motion.
Restrictions
see GetEventStatus, GetSignalStatus
7/27/2019 Pilot Prog Reference
15/123
Pilot Motion Processor Programmers Reference
15
GetActualVelocity ADh
Syntax GetActualVelocity axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Type Range Scaling Unitsvelocity signed 32 bits -231to 231-1 1/216 counts/cycle
Packet structure GetActualVelocity0 axis ADh
15 12 11 8 7 0
First data word
read Actual velocity(high-order part)31 16
Second data word
read Actual velocity(low-order part)15 0
Description GetActualVelocity reads the current actual velocity for the specified axis. Thisvalue is the result of the last encoder input, so it will be accurate to within onecycle.
Scaling example: If a value of -1,234,567 is retrieved by the GetActualVelocitycommand (high word: 0FFEDh, low word: 2979h) this corresponds to a velocityof -1,234,567/65,536 or -18.8380 counts/cycle.
Restrictions The actual velocity is derived by subtracting the actual postion during theprevious chip cyle from the actual position for this chip cycle. The result of this
subtraction will always be integer because position is always integer. As a resultthe value returned by GetActualVelocity will always be a multiple of 65536 sincethis represents a value of one in the 16.16 number format. The low word isalways zero.
see Set/GetActualPosition
7/27/2019 Pilot Prog Reference
16/123
Pilot Motion Processor Programmers Reference
16
GetCaptureValue 36h
Syntax GetCaptureValue axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Type Range Scaling Unitscaptured
positionsigned 32 bits -231to 231-1 unity counts
Packet structure GetCaptureValue0 axis 36h
15 12 11 8 7 0
First data word
read captured position (high-order part)31 16
Second data word
read captured position (low-order part)
15 0
Description GetCaptureValue returns the contents of the Position Capture Register for thespecified axis. This command also resets the capture hardware to allow anothercapture to occur.
Restrictions
see Set/GetCaptureSource
7/27/2019 Pilot Prog Reference
17/123
Pilot Motion Processor Programmers Reference
17
GetChecksum F8h
Syntax GetChecksum
Returned data Type
checksum unsigned 32 bits
Packet structure GetChecksum0 F8h
15 8 7 0
First data word
read Checksum (high-order part)31 16
Second data word
read Checksum (low-order part)15 0
Description GetChecksum reads the chips internal 32-bit checksum value. The value shouldbe 12345678 (hex) for a correctly manufactured chip.
Restrictions
see
7/27/2019 Pilot Prog Reference
18/123
Pilot Motion Processor Programmers Reference
18
GetCommandedAcceleration A7h
Syntax GetCommandedAcceleration axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Type Range Scaling Unitsacceleration signed 32 bits -231to 231-1 1/216 counts/cycle2
Packet structure GetCommandedAcceleration0 axis A7h
15 12 11 8 7 0
First data word
read acceleration (high-order part)31 16
Second data word
read acceleration (low-order part)15 0
Description GetCommandedAcceleration returns the current commanded acceleration valuefor the specified axis. Commanded acceleration is the instantaneous accelerationvalue output by the trajectory generator.
Scaling example: If a value of 114,688 is retrieved using this command then thiscorresponds to 114,688/65,536 = 1.750 counts/cycle2 acceleration value.
Restrictions This command functions when the profile mode is set to Trapezoidal, S-curve, orVelocity Contouring.
see GetCommandedPosition, GetCommandedVelocity
7/27/2019 Pilot Prog Reference
19/123
Pilot Motion Processor Programmers Reference
19
GetCommandedPosition 1Dh
Syntax GetCommandedPosition axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Type Range Scaling Unitsposition signed 32 bits -231to 231-1 unity counts
Packet structure GetCommandedPosition0 axis 1Dh
15 12 11 8 7 0
First data word
read position (high-order part)31 16
Second data word
read position (low-order part)15 0
Description GetCommandedPosition returns the current commanded position for the specifiedaxis. Commanded position is the instantaneous position value output by thetrajectory generator.
This command functions in all profile modes.
Restrictions
see GetCommandedAcceleration, GetCommandedVelocity
7/27/2019 Pilot Prog Reference
20/123
Pilot Motion Processor Programmers Reference
20
GetCommandedVelocity 1Eh
Syntax GetCommandedVelocity axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Type Range Scaling Unitsvelocity signed integer -231to 231-1 1/216 counts/cycle
Packet structure GetCommandedVelocity0 axis 1Eh
15 12 11 8 7 0
First data word
read velocity(high-order part)31 16
Second data word
read velocity(low-order part)
15 0
Description GetCommandedVelocity returns the current commanded velocity value for thespecified axis. Commanded velocity is the instantaneous velocity value output bythe trajectory generator.
Scaling example: If a value of -1,234,567 is retrieved using this command (FFEDhin high word, 2979h in low word) then this corresponds to -1,234,567/65,536 = -18.8380 counts/cycle velocity value.
This command functions in all profile modes.
Restrictions
see GetCommandedAcceleration, GetCommandedPosition
7/27/2019 Pilot Prog Reference
21/123
Pilot Motion Processor Programmers Reference
21
GetCurrentMotorCommand 3Ah
Syntax GetCurrentMotorCommand axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Type Range Scaling Unitsmotor outputcommand
signed 16 bits -215to 215-1 100/215 % output
Packet structure GetCurrentMotorCommand0 axis 3Ah
15 12 11 8 7 0
First data word
read motor output command15 0
Description GetCurrentMotorCommandreturns the current motor output command for the
specified axis. In closed-loop mode, this is the output of the servo filter; in open-loop mode it is the contents of the motor output command register.
Scaling example: To convert the retrieved value to units of % of full scale motoroutput multiply by 100/32,768. For example if the value -123 is retrieved by theGetCurrentMotorCommand, this represents -123*100/32,768 or -.3754 % of fullscale output.
Restrictions
see Set/GetMotorCommand
7/27/2019 Pilot Prog Reference
22/123
7/27/2019 Pilot Prog Reference
23/123
7/27/2019 Pilot Prog Reference
24/123
Pilot Motion Processor Programmers Reference
24
GetHostIOError A5h
Syntax GetHostIOError
Arguments none
Returned data Name Instance Encodingerror code No error
Processor ResetInvalid instructionInvalid axisInvalid parameterTrace runningreservedBlock out of boundsTrace buffer zeroBad serial checksumreservedInvalid negative valueInvalid parameter changeInvalid move after limit conditionInvalid move into limit
0123456789AhBhChDhEh
Packet structure GetHostIOError0 A5h
15 8 7 0
Data
read error code15 4 3 0
Description GetHostIOErrorreturns the code for the last Host I/O error, then resets theerrorto 0. Generally this command is issued only after the error field in the last
serial communications packet indicated there was an I/O error.
Restrictions
see GetEventStatus
7/27/2019 Pilot Prog Reference
25/123
Pilot Motion Processor Programmers Reference
25
GetIntegral (Servo products only) 9Ah
Syntax GetIntegral axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Type Range Scaling Unitsintegral signed 32 bits -231to 231-1 1/28 count*cycles
Packet structure GetIntegral0 axis 9Ah
15 12 11 8 7 0
First data word
read Integrated position error(high-order part)31 16
Second data word
read Integrated position error(low-order part)15 0
Description GetIntegral returns the current integrated position error of the servo filter for thespecified axis. GetIntegral can be used to monitor loading on the axis, becausechanges in the axis loading can be reflected in the value of the integration limit.
Scaling example:
If a constant position error of 100 counts is present for 256 cycles than the totalaccumulated integral value will be 100 (100*256/256). Alternatively a returnedvalue of 1,000 indicates a total stored value of 256,000 count*cycles (1,000*256).
Restrictions The integrated position error is available only when the chip is in closed-loop mode(SetMotorMode command).
This command is not valid on the MC3410/MC3510.
see GetDerivative, Set/GetIntegrationLimit
7/27/2019 Pilot Prog Reference
26/123
Pilot Motion Processor Programmers Reference
26
GetInterruptAxis E1h
Syntax GetInterruptAxis
Arguments none
Returned data Name Instance EncodingaxisMask Axis1 1
Packet structure GetInterruptAxis0 E1h
15 8 7 0
Data
read axisMask15 4 3 0
Description GetInterruptAxis returns a field that identifies all axes with pending interrupts. Axis
numbers are assigned to the low-order four bits of the returned word; bitscorresponding to interrupting axes are set to 1. If the host interruptsignal has notbeen set, the returned word is 0.
Restrictions Only bit 0 is valid.
see ClearInterrupt, Set/GetInterruptMask
7/27/2019 Pilot Prog Reference
27/123
Pilot Motion Processor Programmers Reference
27
GetPhaseCommand (MC3310 and MC3410 only) EAh
Syntax GetPhaseCommand axis
Arguments Name Instance Encoding
axis Axis1 0
phase PhaseAPhaseBPhaseC
012
Returned data Type Range Scaling Unitsmotorcommand
signed 16 bit -215to 215-1 100/215 % output
Packet structure GetPhaseCommand0 axis EAh
15 12 11 8 7 0
First data wordwrite 0 phase
15 3 2 0
Second data word
read motor command15 0
Description GetPhaseCommand returns the value of the current motor output command forphase A, B, or C of the specified axis. These are the phase values directly output tothe motor after commutation.
Scaling example:
If a value of -4,489 is retrieved (EE77h) for a given axis and phase then thiscorresponds to -4,489*100/32,768 = -13.7 % of full-scale output.
Restrictions The data returned by this command during phase initialization may not be valid.
see InitializePhase, Set/GetNumberPhases
7/27/2019 Pilot Prog Reference
28/123
Pilot Motion Processor Programmers Reference
28
GetPositionError 99h
Syntax GetPositionError axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Type Range Scaling Unitsposition error signed 32 bit -231to 231-1 unity counts|steps
Packet structure GetPositionError0 axis 99h
15 12 11 8 7 0
First data word
read position error(high-order part)31 16
Second data word
read position error(low-order part)15 0
Description GetPositionErrorreturns the current position error of the specified axis. The erroris the difference between the actual position (encoder position) and thecommanded position (instantaneous output of the trajectory generator). Refer tothe Users Guide for more information on this command when it is used with theMC3410 or MC3510.
Restrictions
see Set/GetPosition, Set/GetPositionErrorLimit
7/27/2019 Pilot Prog Reference
29/123
Pilot Motion Processor Programmers Reference
29
GetSignalStatus A4h
Syntax GetSignalStatus axis
Arguments Name Instance Encoding
axis Axis1 0
Returned data Description Bit Numberstatus reserved
Positive limitNegative limitAxisInHall AHall BHall CAxisOutreserved
0-34567891011-15
Packet structure GetSignalStatus0 axis A4h
15 12 11 8 7 0
Data
read15 11 10 9 8 7 6 5 4 3 2 1 0
Description GetSignalStatus returns the contents of the signal status register for the specifiedaxis. The signal status register contains the current value of the various hardwaresignals connected to the axis of the chip. The value read is combined with thesignal sense register (SetSignalSense command) and then returned to the user.For each bit in the Signal Sense register that is set to 1 the corresponding bit inthe GetSignalStatus command will be inverted, so that a low signal will be readas 1 and a high signal will be read as a 0. Conversely for each bit in the signal
sense register that is set to 0 the corresponding bit in the GetSignalStatuscommand is not inverted, so that a low signal will be read as 0 and a high signalwill be read as a 1.
All of the bits in the GetSignalStatus command are inputs except for AxisOut.The value read for this bit is equal to the current value output by the axis outmechanism. See SetAxisOutSource command for more details.
Restrictions
see GetActivityStatus, GetEventStatus
7/27/2019 Pilot Prog Reference
30/123
Pilot Motion Processor Programmers Reference
30
GetTime 3Eh
Syntax GetTime
Arguments none
Returned data Name Type Range Scaling Unitscurrentchipset time
unsigned 32 bit 0 to 232-1 unity cycles
Packet structure GetTime0 3Eh
15 8 7 0
First data word
read current chipset time (high-order part)31 16
Second data word
read current chipset time (low-order part)15 0
Description Returns the number of cycles that have occurred since the processor was last
initialized or reset.
Restrictions
see
7/27/2019 Pilot Prog Reference
31/123
Pilot Motion Processor Programmers Reference
31
GetTraceCount BBh
Syntax GetTraceCount
Arguments none
Returned data Value Type Range Scaling Unitstrace count unsigned 32 bit 0 to 232-1 unity samples
Packet structure GetTraceCount0 BBh
15 8 7 0
First data word
read trace count(high-order part)31 16
Second data word
read trace count(low-order part)15 0
Description GetTraceCount returns the number of points (variable values) stored in the tracebuffer since the beginning of the trace.
Restrictions
see ReadBuffer, Set/GetTraceStart, Set/GetTraceStop
7/27/2019 Pilot Prog Reference
32/123
Pilot Motion Processor Programmers Reference
32
GetTraceStatus BAh
Syntax GetTraceStatus
Arguments none
Returned data Name Bit Instance Descriptionmask 0 Mode Set to 0 when trace is in one-time mode, 1
when in rolling mode.1 Activity Set to 1 when trace is active (currently
tracing) , 0 if trace not active2 Data wrap Set to 1 when trace has wrapped, 0 if it has
not wrapped. If 0, the buffer has not yet beenfilled and all recorded data are intact. If 1, thetrace has wrapped to the beginning of thebuffer; any previous data may have beenoverwritten if not explicitly retrieved by thehost using the ReadBuffer command while thetrace is active.
Packet structure GetTraceStatus0 BAh
15 8 7 0
First data word
read15 3 2 1 0
Description GetTraceStatus returns the current trace status.
Restrictions
see Set/GetTraceStart, Set/GetTraceMode
7/27/2019 Pilot Prog Reference
33/123
Pilot Motion Processor Programmers Reference
33
GetVersion 8Fh
Syntax GetVersion
Arguments none
Returned data Product information Encodingproduct family Pilot 2motor type Servo
BrushlessMicrostepping
134
axes supported 1special attributes 0 to 15customization code none
other01 to 255
major s/w version 0 to 15minor s/w version 0 to 15
Packet structure GetVersion0 8Fh
15 8 7 0
First data word
read product family motor type number of axes special attributes15 12 11 8 7 4 3 0
Second data word
read customization code major s/w version minor s/w version15 8 7 4 3 0
Description GetVersion returns product information encoded as shown above.
Restrictions
see
7/27/2019 Pilot Prog Reference
34/123
Pilot Motion Processor Programmers Reference
34
InitializePhase (MC3310 only) 7Ah
Syntax InitializePhase axis
Arguments Name Instance Encoding
axis Axis1 0
Packet structure InitializePhase0 axis 7Ah
15 12 11 8 7 0
Description InitializePhase initializes the phase angle for the specified axis using the mode(Hall-based orAlgorithmic) specified by the SetPhaseInitializationModecommand.
Restrictions Warning: If the phase initialization mode has been set to algorithmic then after this
command is sent the motor can move suddenly in an uncontrolled manner.This command is only applicable in the sinusoidal Commutation Mode. (seeSetCommutationMode)
see GetPhaseCommand, Set/GetNumberPhases
7/27/2019 Pilot Prog Reference
35/123
Pilot Motion Processor Programmers Reference
35
NoOperation 00h
Syntax NoOperation
Arguments none
Packet structure NoOperation0 00h
15 8 7 0
Description The NoOperation command has no affect on the chip. It is useful as a nulloperation to verify communications with the Motion Processor.
Restrictions
see
7/27/2019 Pilot Prog Reference
36/123
Pilot Motion Processor Programmers Reference
36
ReadAnalog EFh
Syntax ReadAnalog portID
Arguments Name Type Range Scaling Units
portID unsigned 16 bit 0 to 7 unity -
Returned data value unsigned 16 bit 0 to 216-1 1/216 % input
Packet structure ReadAnalog0 EFh
15 8 7 0
First data word
write 0 portID15 0
Second data word
read value15 0
Description ReadAnalog returns a 16-bit value representing the voltage (read by an on-chip 10bit A/D) presented to the specified analog input. See User's Guide for moreinformation on analog input and scaling. The value returned is the result of shiftingthe 10-bit value 6 bits left.
Restrictions
see
7/27/2019 Pilot Prog Reference
37/123
Pilot Motion Processor Programmers Reference
37
ReadBuffer C9h
Syntax ReadBuffer bufferID
Arguments Name Type Range Scaling Units
bufferID unsigned 16 bit 0 to 31 unity -
Returned data value signed 32 bit -231to 231-1 unity -
Packet structure ReadBuffer0 C9h
15 8 7 0
First data word
write 0 bufferID15 4 3 0
Second data word
read buffer contents (high-order part)31 16
Third data word
read buffer contents (low-order part)15 0
Description ReadBufferreturns the 32-bit contents of the current location in the specifiedbuffer. The current location is determined by adding the base address of the buffer(set bySetBufferStart), to the buffer's Read Index (set by SetBufferReadIndex).After the contents have been read, the Read Index is incremented by 1; if the resultis equal to the buffer length (set bySetBufferLength), the Index is reset to 0.
Some commands automatically change the read index such as at the completion ofa trace when in rolling mode. Refer to Section 6.4 of the User's Guide for details.
Restrictions
see Set/GetBufferReadIndex, WriteBuffer
7/27/2019 Pilot Prog Reference
38/123
Pilot Motion Processor Programmers Reference
38
ReadIO 83h
Syntax ReadIO address
Arguments Name Type Range Scaling Units
address unsigned 8 bit 0 to 255 unity -
Returned data value unsigned 16 bit 0 to 216-1 unity -
Packet structure ReadIO0 axis 83h
15 12 11 8 7 0
First data word
write 0 address15 8 7 0
Second data word
read data15 0
Description ReadIO reads one 16-bit word of data from the device whose address is calculatedby adding 1000h to address. (address is an offset from the base address, 1000h, ofthe MC3000s memory-mapped I/O space.)
The format and interpretation of the 16-bit data word are dependent on the user-defined device being addressed. User-defined I/O can be used to implement anumber of features including additional parallel I/O, flash memory for non-volatileconfiguration information storage, or display devices such as LED arrays.
Restrictions
see WriteIO
7/27/2019 Pilot Prog Reference
39/123
Pilot Motion Processor Programmers Reference
39
Reset 39h
Syntax Reset
Arguments none
Packet structure Reset0 39h
15 8 7 0
Description Reset restores the chip to its initial condition, setting all chip variables to theirdefault values. These default values are shown in the following table:
AccelerationActualPositionAutoStopModeAxisModeAxisOutSourceBreakpoint 1
Breakpoint 2BreakpointValue 1BreakpointValue 2BufferLengthBufferReadIndexBufferStartBufferWriteIndexCaptureSourceCommutationModeDecelerationDerivativeTimeEncoderModulusEncoderSourceIntegrationLimit
InterruptMaskJerkKaffKdKiKoutKpKvffLimitModeMotionCompleteMode
001100
00000200h00001000
00000655350010
MotorBiasMotorCommandMotorLimitMotorModeNumberPhasesOutputMode
PhaseAnglePhaseCorrectionModePhaseCountsPhaseInitializeModePhaseInitializeTimePhaseOffsetPhasePrescalePositionPositionErrorLimitProfileModeSampleTimeSettleTimeSettleWindowSignalSense
StopTraceModeTracePeriodTraceStartTraceStopTraceVariable 1TraceVariable 2TraceVariable 3TraceVariable 4TrackingWindowVelocity
00327671see note 1see note 2
6553510006553500327670see note 3000
00100000000
7/27/2019 Pilot Prog Reference
40/123
Pilot Motion Processor Programmers Reference
40
Notes:
1. The reset value for the number of phases is dependent on the Motion Processorseries, as follows:
MC3110 1
MC3310 3MC3410 2
2. The reset value for the output mode is dependent on the Motion Processorseries, as follows:
MC3110 1MC3310 2MC3410 1
3. The reset value for SampleTime depends on the number of axes and the motionprocessor, as follows:
MC3110 102MC3310 154MC3410 154MC3510 102
External-memory buffer parameters are reset for all buffers. BufferStart is reset to(200h), the lowest user-accessible address.External-memory buffer conditions are reset on all 32 memory buffers.
Restrictions For the MC3410/MC3510:
AutoStopMode Off
EncoderSource NoneActualPositionUnits Counts
see
7/27/2019 Pilot Prog Reference
41/123
Pilot Motion Processor Programmers Reference
41
ResetEventStatus 34h
Syntax ResetEventStatus axis mask
Arguments Name Instance Encoding
axis Axis1 0
mask Motion completeWrap-aroundBreakpoint 1Capture receivedMotion errorIn positive limitIn negative limitInstruction errorCommutation errorBreakpoint 2
0001h0002h0004h0008h0010h0020h0040h0080h0800h4000h
Packet structure ResetEventStatus0 axis 34h
15 12 11 8 7 0
Data
write 0 0 0 0 0 0 mask14 11 7 0
Description ResetEventStatus clears (sets to 0) , for the specified axis, each bit in the EventStatus Register that has a value of 0 in the masksent with this command. All otherEvent Status register bits (bits which have a mask value of 1) are unaffected.
Restrictions
see GetEventStatus
7/27/2019 Pilot Prog Reference
42/123
Pilot Motion Processor Programmers Reference
42
SetAcceleration buffered 90hGetAcceleration 4Ch
Syntax SetAcceleration axis accelerationGetAcceleration axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
acceleration unsigned 32 bit 0 to 231-1 1/216 counts/cycle2
Packet structure SetAcceleration0 axis 90h
15 12 11 8 7 0
First data word
write acceleration (high-order part)31 16
Second data word
write acceleration (low-order part)15 0
GetAcceleration
0 axis 4Ch15 12 11 8 7 0
First data word
read acceleration (high-order part)31 16
Second data word
read acceleration (low-order part)15 0
Description SetAcceleration loads the maximum acceleration buffer register for the specifiedaxis. This command is used with the Trapezoidal, Velocity Contouring, and S-
curve profiling modes.GetAcceleration reads the maximum acceleration buffer register set by the previousSetAcceleration command.
Scaling example: To load a value of 1.750 counts/cycle2 multiply by 65,536 (giving114,688) and load the resultant number as a 32 bit number, giving 0001 in the highword and C000h in the low word. Values returned byGetAcceleration mustcorrespondingly be divided by 65,536 to convert to units of counts/cycle2.
Restrictions SetAcceleration may not be issued while an axis is in motion with the S-curveprofile.
SetAcceleration is a buffered command. The value set using this command will
not take effect until the next Update instruction.
see Set/GetDeceleration, Set/GetJerk, Set/GetPosition, Set/GetVelocity, Update
7/27/2019 Pilot Prog Reference
43/123
Pilot Motion Processor Programmers Reference
43
SetActualPosition 4DhGetActualPosition 37h
Syntax SetActualPosition axis positionGetActualPosition axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
position signed 32 bits -231to 231-1 unity counts|steps
Packet structure SetActualPosition0 axis 4Dh
15 12 11 8 7 0
First data word
write position (high-order part)31 16
Second data word
write position (low-order part)15 0
GetActualPosition
0 axis 37h15 12 11 8 7 0
First data word
read position (high-order part)31 16
Second data word
read position (low-order part)15 0
Description SetActualPosition loads the actual position register (encoder position) for thespecified axis. At the same time, the current commanded position is replaced by the
loaded value minus the current actual position error. This prevents a servo "bump"when the new axis position is established. The destination position (see SetPosition)is also modified by this amount so that no trajectory motion will occur when theupdate instruction is issued. In effect, this instruction establishes a new referenceposition from which subsequent positions can be calculated. It is commonly used toset a known reference position after a homing procedure.
SetActualPosition takes effect immediately, it is not buffered.
GetActualPosition reads the contents of the encoders actual position register. Thisvalue will be the result of the last encoder input, which will be accurate to within onecycle (as determined bySet/GetSampleTime).
Restrictions
see GetPositionError; GetActualVelocity, Set/GetActualPositionUnits,AdjustActualPosition
7/27/2019 Pilot Prog Reference
44/123
Pilot Motion Processor Programmers Reference
44
SetActualPositionUnits (MC3410/MC3510 only) BEhGetActualPositionUnits (MC3410/MC3510 only) BFh
Syntax SetActualPositionUnits axis modeGetActualPositionUnits axis
Arguments Name Instance Encodingaxis Axis1 0
mode CountsSteps
01
Packet structure SetActualPositionUnits0 axis BEh
15 12 11 8 7 0
Data
write 0 mode15 1 0
GetActualPositionUnits
0 axis BFh15 12 11 8 7 0
Data
read mode
15 1 0
Description SetActualPositionUnits determines the units used by the Set/GetActualPosition,AdjustActualPosition and GetCaptureValue for the specified axis. When set toCountsposition units are in encoder counts. When set to StepsGetActualPositionposition units are in steps.
GetActualPositionUnits returns the mode for the specified axis.
Restrictions This command is only available on the MC3410/MC3510.
see Set/GetActualPosition, Set/GetEncoderToStepRatio, AdjustActualPosition,GetCaptureValue
7/27/2019 Pilot Prog Reference
45/123
Pilot Motion Processor Programmers Reference
45
SetAutoStopMode D2hGetAutoStopMode D3h
Syntax SetAutoStopMode axis modeGetAutoStopMode axis
Arguments Name Instance Encodingaxis Axis1 0
mode DisableEnable
01
Packet structure SetAutoStopMode0 axis D2h
15 12 11 8 7 0
Data
write 0 mode
15 0
GetAutoStopMode
0 axis D3h15 12 11 8 7 0
Data
read mode
15 1 0
Description SetAutoStopMode determines the behavior of the specified axis when a motionerror occurs. When auto stop is enabled (SetAutoStopMode Enable), the axis goesinto open-loop mode when a motion error occurs. When Auto-Stop is disabled(SetAutoStopMode Disable), the axis is not affected by a motion error.
GetAutoStopMode returns the current state of the Auto-Stop mode.
Restrictions When the encoder source is set to none (SetEncoderSource None), setting the autostop mode to Enable will not stop motion in the event that the position error limit isexceeded.
see GetEventStatus, SetPositionErrorLimit
7/27/2019 Pilot Prog Reference
46/123
Pilot Motion Processor Programmers Reference
46
SetAxisMode 87hGetAxisMode 88h
Syntax SetAxisMode axis modeGetAxisMode axis
Arguments Name Instance Encodingaxis Axis1 0
mode offon
01
Packet structure SetAxisMode0 axis 87h
15 12 11 8 7 0
Data
write 0 mode15 1 0
GetAxisMode0 axis 88h
15 12 11 8 7 0
Data
read mode
15 1 0
Description SetAxisMode enables (On) or disables (Off) the specified axis. A disabled axis willnot respond to profile or other motion commands.
GetAxisMode returns the current status of the specified axis.
Restrictions A disabled axis does not provide encoder feedback. If it is desired that an axis
provide encoder feedback even though no profiling or servo control is to be used,that axis must be left enabled.
see
7/27/2019 Pilot Prog Reference
47/123
Pilot Motion Processor Programmers Reference
47
SetAxisOutSource EDhGetAxisOutSource EEh
Syntax SetAxisOutSource axis sourceAxis bit registerGetAxisOutSource axis
Arguments Name Instance Encodingaxis Axis1 0
sourceAxis Axis1 0
bit see below 0 to 15
register (none)EventStatusActivityStatusSignalStatus
0123
Packet structure SetAxisOutSource0 axis EDh
15 12 11 8 7 0
Data
write 0 register bit sourceAxis15 12 11 8 7 4 3 0
GetAxisOutSource
0 axis EEh15 12 11 8 7 0
Data
read register bit sourceAxis15 12 11 8 7 4 3 0
Description SetAxisOutSource maps the specified bitof the specified status registerofaxisntothe AxisOut pin for the specified axis. The state of the AxisOut pin will thereaftertrack the state ofbit. Ifregisteris absent (encoding of 0), bitis ignored, and thespecified AxisOut pin is, in effect, turned off (inactive).
GetAxisOutSource reads the mapping of the AxisOut pin ofaxis.
7/27/2019 Pilot Prog Reference
48/123
Pilot Motion Processor Programmers Reference
48
The table below shows the corresponding value for combinations ofbitandregister.
encoding of "bit" register = event status register = activity status register = signal
status
0 Motion Complete Phasing Initialized Encoder A
1 Wrap-around At maximum velocity Encoder B2 Breakpoint 1 Tracking Encoder index
3 Position capture Home
4 Motion error Positive limit
5 In positive limit Negative limit
6 In negative limit AxisIn
7 Instruction error Axis settled Hall sensor 1
8 Motor on/off Hall sensor 2
9 Position capture Hall sensor 3
0Ah In motion
0Bh Commutation error In positive limit
0Ch In negative limit
0Dh
0Eh Breakpoint 2
0Fh
Restrictions
see SetSignalSense
7/27/2019 Pilot Prog Reference
49/123
Pilot Motion Processor Programmers Reference
49
SetBreakpoint D4hGetBreakpoint D5h
Syntax SetBreakpoint axisbreakpoint sourceAxis action triggerGetBreakpoint axis breakpoint
Arguments Name Instance Encodingaxis Axis1 0
breakpoint Breakpoint1Breakpoint2
01
sourceAxis Axis1 0
action (none)UpdateAbruptStopSmoothStopMotorOff
01234
trigger (none)GreaterOrEqualCommandedPosition
LesserOrEqualCommandedPosition
GreaterOrEqualActualPosition
LesserOrEqualActualPosition
CommandedPositionCrossed
ActualPositionCrossed
Time
EventStatus
ActivityStatus
SignalStatus
0123456789Ah
Packet structure SetBreakpoint0 axis D4h15 12 11 8 7 0
First data word
write 0 breakpoint15 1 0
Second data word
write trigger action sourceAxis15 8 7 4 3 0
GetBreakpoint
0 axis D5h15 12 11 8 7 0
First data word
write 0 breakpoint15 1 0
Second data wordread trigger action sourceAxis
15 8 7 4 3 0
7/27/2019 Pilot Prog Reference
50/123
Pilot Motion Processor Programmers Reference
50
Description SetBreakpoint establishes a breakpoint for the specified axis to be triggered by acondition or event on sourceAxis. Up to two concurrent breakpoints can be set foreach axis.
The six Position breakpoints and the Time breakpoint are threshold-triggered; thebreakpoint occurs when the indicated value reaches or crosses a threshold. TheStatus breakpoints are level-triggered; the breakpoint occurs when a specific bit orcombination of bits in the indicated status register changes state. Thresholds and bitspecifications are both set by the SetBreakpointValue instruction.
action determines what the chip does when the breakpoint occurs, as follows:
Action Resultant command sequence
none no action
Update Updateaxis
AbruptStop The profile executes an abrupt stop
SmoothStop The profile executes a smooth stop
MotorOff SetMotorMode axis, Off
axis is the axis for which the breakpoint has been set.GetBreakpoint returns the condition, axis, and action for the specified breakpoint(1 or 2) of the indicated axis. When a breakpoint occurs the trigger value will be resetto none. The CommandedPositionCrossed and the ActualPositionCrossed triggersare converted to one of the Position trigger types 1-4 depending on the currentposition when the command is issued.
Two completely separate breakpoints are supported, each of which may have its ownbreakpoint type and comparison value. The breakpointfield specifies whichbreakpoint the SetBreakpoint and GetBreakpoint commands will address.
Restrictions Before setting a new breakpoint condition (SetBreakpoint command) ALWAYSload the comparison value first (SetBreakpointValue command). This is because assoon as the breakpoint condition is set the chip will start using the breakpoint valueregister, and if it is not yet defined the breakpoint will not behave as expected.
see Set/GetBreakpointValue
7/27/2019 Pilot Prog Reference
51/123
Pilot Motion Processor Programmers Reference
51
SetBreakpointValue D6hGetBreakpointValue D7h
Syntax SetBreakpointValue axis breakpoint valueGetBreakpointValue axis breakpoint
Arguments Name Instance Encoding
axis Axis1 0
breakpoint Breakpoint1Breakpoint2
01
Type Range Units
value GreaterOrEqualCommandedPositionLesserOrEqualCommandedPosition
GreaterOrEqualActualPosition
LesserOrEqualActualPosition
CommandedPositionCrossed
ActualPositionCrossed
Time
EventStatus
ActivityStatus
SignalStatus
signed 32 bitsigned 32 bitsigned 32 bitsigned 32 bitsigned 32 bitsigned 32 bit
unsigned 32 bit2 word mask*2 word mask*2 word mask*
-231to 231-1-231to 231-1-231to 231-1-231to 231-1-231to 231-1-231to 231-1
0 to 232-1---
countscountscountscountscountscounts
cycles---
* see description section below for more details on mask format
Packet structure SetBreakpointValue0 axis D6h
15 12 11 8 7 0
First data word
write 0 breakpoint15 1 0
Second data word
write value (high-order part)31 16
Third data word
write value (low-order part)
15 0
GetBreakpointValue
0 axis D7h15 12 11 8 7 0
First data word
write 0 breakpoint15 1 0
Second data word
read value (high-order part)31 16
Third data word
read value (low-order part)15 0
7/27/2019 Pilot Prog Reference
52/123
Pilot Motion Processor Programmers Reference
52
Description SetBreakpointValue sets the breakpoint comparison value for the specified axis.For the position and time breakpoints this is a threshold comparison value.
For level-triggered breakpoints, the high-order part ofvalue is the selection mask,and the low-order word is the sense mask. For each selection bit that is set to 1, thecorresponding bit of the specified status register is conditioned to cause a breakpointwhen it changes state. The sense-mask bit determines which state causes the break. Ifit is 1, the corresponding status-register bit will cause a break when it is set to 1. If itis 0, the status-register bit will cause a break when it is set to 0.
For example assume it is desired that the breakpoint type will be set to"EventStatus" and that a breakpoint should be recognized whenever the motioncomplete bit (bit 0 of event status register) is set to 1, or the commutation error bit(bit 11 of event status register) is set to 0. In this situation the high and low wordsfor value would be high word: 0x801 (hex) and low word: 1.
GetBreakpointValue returns the current breakpoint value for the specifiedbreakpoint.
Two completely separate breakpoints are supported, each of which may have its own
breakpoint type and comparison value. The breakpointfield specifies whichbreakpoint the SetBreakpointValue and GetBreakpointValue commands willaddress.
Restrictions Before setting a new breakpoint condition (SetBreakpoint command) ALWAYSload the comparison value first (SetBreakpointValue command). This is because assoon as the breakpoint condition is set the chip will start using the breakpoint valueregister, and if it is not yet defined the breakpoint will not behave as expected.
see Set/GetBreakpoint
7/27/2019 Pilot Prog Reference
53/123
Pilot Motion Processor Programmers Reference
53
SetBufferFunction CAhGetBufferFunction CBh
Syntax SetBufferFunction axisfunction bufferIDGetBufferFunction axis function
Arguments Name Instance Encodingaxis Axis1 0
function PositionVelocityAccelerationJerkTime
01234
Name Type Range Scaling Units
bufferID signed 16 bits -1 to 31 unity -
Packet structure SetBufferFunction0 axis CAh
15 12 11 8 7 0
First data word
write function15 0
Second data word
write 0 bufferID15 5 4 0
GetBufferFunction
0 axis CBh15 12 11 8 7 0
First data word
write function15 0
Second data wordread 0 bufferID15 5 4 0
Description SetBufferFunction sets the interpretation for data stored in a buffer when an axis isin External Profile mode. A function will have no associated buffer if the bufferIDparameter is set to -1. This is useful for disabling a function.
GetBufferFunction returns the bufferID for the specified function. If a function hasnot been assigned a buffer, the return value is 1.
Restrictions
see Set/GetProfileMode
7/27/2019 Pilot Prog Reference
54/123
Pilot Motion Processor Programmers Reference
54
SetBufferLength C2hGetBufferLength C3h
Syntax SetBufferLength bufferID lengthGetBufferLength bufferID
Arguments Name Type Range Scaling UnitsbufferID unsigned 16 bits 0 to 31 unity -
length unsigned 32 bits 1 to 230-1 unity -
Packet structure SetBufferLength0 C2h
15 8 7 0
First data word
write 0 bufferID15 4 0
Second data word
write length (high-order part)31 16
Third data wordwrite length (low-order part)
15 0
GetBufferLength
0 C3h15 8 7 0
First data word
write 0 bufferID15 4 3 0
Second data word
read length (high-order part)31 16
Third data word
read length (low-order part)15 0
Description SetBufferLength sets the length, in number of 32-bit elements, of the buffer in thememory block identified bybufferID.
Note: SetBufferLength resets the buffers read and write indexes to 0.
GetBufferLength returns the length of the specified buffer.
Restrictions If the specified length extends beyond the end of addressable memory,SetBufferLength is not executed, and returns host-I/O error code 7, buffer boundexceeded.
Note: Setting the buffer length beyond the end of physical memory could
cause the chip to unexpectedly reset during operation.
see Set/GetBufferReadIndex; Set/GetBufferStart; Set/GetBufferWriteIndex
7/27/2019 Pilot Prog Reference
55/123
Pilot Motion Processor Programmers Reference
55
SetBufferReadIndex C6hGetBufferReadIndex C7h
Syntax SetBufferReadIndex bufferID indexGetBufferReadIndex bufferID
Arguments Name Type Range Scaling UnitsbufferID unsigned 16 bits 0 to 31 unity -
index unsigned 32 bits 0 to bufferlength-1
unity double words(32 bit)
Packet structure SetBufferReadIndex0 C6h
15 8 7 0
First data word
write 0 bufferID15 4 3 0
Second data wordwrite index(high-order part)
31 16
Third data word
write index(low-order part)15 0
GetBufferReadIndex
0 C7h15 8 7 0
First data word
write 0 bufferID15 4 3 0
Second data word
read index(high-order part)31 16
Third data wordread index(low-order part)
15 0
Description SetBufferReadIndex sets the address of the Read Index for the specified buffer. Ifthe read index is set to an address beyond the length of the buffer, the commandwill not be executed and will return an error.
GetBufferReadIndex returns the current Read Index for the specified buffer.
Restrictions
seeSet/GetBufferLength, Set/GetBufferStart, Set/GetBufferWriteIndex
7/27/2019 Pilot Prog Reference
56/123
Pilot Motion Processor Programmers Reference
56
SetBufferStart C0hGetBufferStart C1h
Syntax SetBufferStart bufferID addressGetBufferStart bufferID
Arguments Name Type Range Scaling UnitsbufferID unsigned 16 bit 0 to 31 unity -
address unsigned 32 bit 29to 231-1 unity double words(32 bit)
Packet structure SetBufferStart0 C0h
15 8 7 0
First data word
write 0 bufferID15 4 3 0
Second data word
write address (high-order part)31 16Third data word
write address (low-order part)15 0
GetBufferStart
0 C1h15 8 7 0
First data word
write 0 bufferID15 4 3 0
Second data word
read address (high-order part)31 16
Third data word
read address (low-order part)15 0
Description SetBufferStart sets the starting address for the specified buffer. The buffer startaddress must be 200h or greater.
Note: SetBufferStartresets the buffers read and write indexes to 0.
GetBufferStart returns the starting address for the specified buffer.
Restrictions If the specified length extends beyond the end of addressable memory,SetBufferStart is not executed, and returns host-I/O error code 7, buffer boundexceeded.
Note: Setting the buffer start beyond the end of physical memory couldcause the chip to unexpectedly reset during operation.
see Set/GetBufferLength, Set/GetReadIndex, Set/GetBufferWriteIndex
7/27/2019 Pilot Prog Reference
57/123
Pilot Motion Processor Programmers Reference
57
SetBufferWriteIndex C4hGetBufferWriteIndex C5h
Syntax SetBufferWriteIndex bufferID indexGetBufferWriteIndex bufferID
Arguments Name Type Range Scaling UnitsbufferID unsigned 16 bit 0 to 31 unity -
index unsigned 32 bit 0 to bufferlength-1
unity long words(32 bits)
Packet structure SetBufferWriteIndex0 C4h
15 8 7 0
First data word
write 0 bufferID15 4 3 0
Second data word
write index(high-order part)31 16
Third data word
write index(low-order part)15 0
GetBufferWriteIndex
0 C5h15 8 7 0
First data word
write 0 bufferID15 4 3 0
Second data word
read index(high-order part)31 16
Third data word
read index(low-order part)15 0
Description SetBufferWriteIndex sets the address of the write index for the specified buffer. Ifthe write index is set to an address beyond the length of the buffer, the commandwill not be executed and will return an error.
GetBufferWriteIndex returns the current write index for the specified buffer.
Restrictions
see Set/GetBufferLength, Set/GetBufferReadIndex, Set/GetBufferStart
7/27/2019 Pilot Prog Reference
58/123
Pilot Motion Processor Programmers Reference
58
SetCaptureSource D8hGetCaptureSource D9h
Syntax SetCaptureSource axis sourceGetCaptureSource axis
Arguments Name Instance Encodingaxis Axis1 0
source IndexHome
01
Packet structure SetCaptureSource0 axis D8h
15 12 11 8 7 0
Data
write 0 source15 1 0
GetCaptureSource
0 axis D9h15 12 11 8 7 0
Data
read source
15 1 0
Description SetCaptureSource determines which of two encoder signals, Index or Home, isused to trigger the high-speed capture of the actual axis position for the specifiedaxis.
GetCaptureSource returns the capture signal source for the selected axis.
Restrictions
see GetCaptureValue
7/27/2019 Pilot Prog Reference
59/123
Pilot Motion Processor Programmers Reference
59
SetCommutationMode (MC3310 only) E2hGetCommutationMode (MC3310 only) E3h
Syntax SetCommutationMode axis modeGetCommutationMode axis
Arguments Name Instance Encodingaxis Axis1 0
mode SinusoidalHall-BasedMicrostepping
012
Packet structure SetCommutationMode 0 axis E2h
15 12 11 8 7 0
Data
write 0 mode15 2 1 0
GetCommutationMode
0 axis E3h15 12 11 8 7 0
Data
read mode
15 2 1 0
Description SetCommutationMode sets the phase commutation mode for the specified axis.
When set to sinusoidal, as the motor turns, the encoder input signal is used tocalculate the phase angle. This angle is in turn used to generate sinusoidally varyingoutputs to each motor winding.
When set to Hall-based the hall effect sensor inputs are used to commutate themotor windings using a "six-step" or "trapezoidal" waveform method.
When set to microstepping the output of the trajectory generator is used tocalculate the phase angle. This angle is in turn used to generate sinusoidally varyingoutputs to each motor phase.
GetCommutationMode returns the current commutation mode.
When operating with brushless servo motors either sinusoidal or Hall-based aretypically used for motor commutation.
Microstepping is sometimes used with brushless motors to "manually" move themotor before phase initialization has occurred. Alternatively, Microstepping can beused with step motors or with AC induction motors where frequency synthesis is all
that is required to rotate the motor.Restrictions
see Set/GetCommutationPrescale, Set/GetCommutationCounts,Set/GetPhase commands
7/27/2019 Pilot Prog Reference
60/123
Pilot Motion Processor Programmers Reference
60
SetDeceleration buffered 91hGetDeceleration 92h
Syntax SetDeceleration axis decelerationGetDeceleration axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
deceleration unsigned 32 bits 0 to 231-1 1/216 counts/cycle2
Packet structure SetDeceleration0 axis 91h
15 12 11 8 7 0
First data word
write deceleration (high-order part)31 16
Second data word
write deceleration (low-order part)15 0
GetDeceleration
0 axis 92h15 12 11 8 7 0
First data word
read deceleration (high-order part)31 16
Second data word
read deceleration (low-order part)15 0
Description SetDeceleration loads the maximum deceleration buffer register for the specifiedaxis. This command sets the magnitude of the deceleration register, which always
has a negative sign.GetDeceleration reads the Maximum Deceleration buffer.
Scaling example: To load a value of 1.750 counts/cycle2 multiply by 65,536 (giving114,688) and load the resultant number as a 32 bit number, giving 0001 in the highword and C000h in the low word. Retrieved numbers (GetDeceleration) mustcorrespondingly be divided by 65,536 to convert to units of counts/cycle2
Restrictions This is a buffered command. The new value set will not take effect until the nextUpdate instruction is entered.
These commands are used with the Trapezoidal, S-curve, and Velocity contouringprofile modes.
Note: If deceleration is set to zero, then the value specified for acceleration(SetAcceleration) will automatically be used to set the magnitude of deceleration.
see Set/GetAcceleration, Set/GetJerk, Set/GetPosition, Set/GetVelocity, Update
7/27/2019 Pilot Prog Reference
61/123
Pilot Motion Processor Programmers Reference
61
SetDerivativeTime (Servo products only) 9ChGetDerivativeTime (Servo products only) 9Dh
Syntax SetDerivativeTime axis timeGetDerivativeTime axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
time unsigned 16 bits 0 to 215-1 unity cycles
Packet structure SetDerivativeTime0 axis 9Ch
15 12 11 8 7 0
Data
write time15 0
GetDerivativeTime
0 axis 9Dh15 12 11 8 7 0
Data
read time15 0
Description SetDerivativeTime sets the sampling time, in number of servo cycles, for the servofilter to use in calculating the derivative term for the specified axis.
GetDerivativeTime returns the derivative sampling time.
Restrictions This command is NOT buffered. The new sampling time value will take effectimmediately after the command is sent to the chip.
This command does not affect the overall cycle time of the chipset, only thederivative sampling time. The overall cycle time of the chip is set using thecommand SetSampleTime.
see GetDerivative, GetIntegral, Update
7/27/2019 Pilot Prog Reference
62/123
Pilot Motion Processor Programmers Reference
62
SetDiagnosticPortMode 89hGetDiagnosticPortMode 8Ah
Syntax SetDiagnosticPortMode modeGetDiagnosticPortMode
Arguments Name Instance Encodingmode Limited
Full01
Packet structure SetDiagnosticPortMode0 89h
15 8 7 0
Data
write 0 mode15 1 0
GetDiagnosticPortMode
0 8Ah15 8 7 0
Data
read mode
15 1 0
Description SetDiagnosticPortMode determines the instruction set that can be executedthrough the diagnostic (serial) port. When set to Limited, only the followinginstructions may be executed:
all Get instructions
The SetBufferReadIndex instruction
When set to Full, all instructions may be executed.
GetDiagnosticPortMode returns the current mode of the diagnostic (serial) port.
Restrictions
see Set/GetSerialPortMode
7/27/2019 Pilot Prog Reference
63/123
Pilot Motion Processor Programmers Reference
63
SetEncoderModulus 8DhGetEncoderModulus 8Eh
Syntax SetEncoderModulus axis modulusGetEncoderModulus axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
modulus unsigned 16 bit 1 to 216-1 unity counts
Packet structure SetEncoderModulus0 axis 8Dh
15 12 11 8 7 0
Data
write modulus15 0
GetEncoderModulus
0 axis 8Eh15 12 11 8 7 0
Data
read modulus15 0
Description SetEncoderModulus sets the parallel word range for the specified axis whenparallel-word feedback is used. Modulus determines the range of the connected
device. The value provided should be one-half of the actual modulus of the axis.For example if the parallel-word input is used with a linear potentiometerconnected to an external A/D (Analog to Digital converter) which has 12 bits ofresolution, then the total range is 4,096 and a value of 2,048 should be loaded withthis command.
GetEncoderModulus returns the current encoder modulus.
Restrictions These commands are only used if parallel-word feedback is used. If incrementalencoder feedback is used then these commands are not required.
see Set/GetEncoderSource
7/27/2019 Pilot Prog Reference
64/123
Pilot Motion Processor Programmers Reference
64
SetEncoderSource DAhGetEncoderSource DBh
Syntax SetEncoderSource axis sourceGetEncoderSource axis
Arguments Name Instance Encodingaxis Axis1 0
source IncrementalParallel
01
None 2
Packet structure SetEncoderSource0 axis DAh
15 12 11 8 7 0
Data
write 0 source15 2 1 0
GetEncoderSource
0 axis DBh15 12 11 8 7 0
Data
read source
15 2 1 0
Description SetEncoderSource sets the type of feedback (incremental quadrature encoder orparallel-word) for the specified axis. When incremental quadrature is selected thechip expects A and B quadrature signals to be input at the chip. When parallel-wordis selected the chip expects user-defined external circuitry connected to the chip'sexternal bus to load a 16-bit word containing the current position value for each
axis. External feedback devices with less than 16 bits may be used but the unusedbits must be sign extended or 'zeroed'.
GetEncoderSource returns the code for the current type of feedback.
Restrictions
see Set/GetEncoderModulus
7/27/2019 Pilot Prog Reference
65/123
Pilot Motion Processor Programmers Reference
65
SetEncoderToStepRatio (MC3410/MC3510 only) DEhGetEncoderToStepRatio (MC3410/MC3510 only) DFh
Syntax SetEncoderToStepRatio axis counts stepsGetEncoderToStepRatio axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
counts signed 16 bit -215to 215-1 unity encodercounts
steps signed 16 bit -215to 215-1 unity steps
Packet structure SetEncoderToStepRatio0 axis DEh
15 12 11 8 7 0
First data word
write counts31 16
Second data word
write steps
15 0
GetEncoderToStepRatio
0 axis DFh15 12 11 8 7 0
First data word
read counts31 16
Second data word
read steps15 0
Description SetEncoderToStepRatio sets the ratio of number of encoder counts to the numberof output steps per motor rotation used by the motion processor to convertencoder counts into steps/microsteps. Counts is the number of encoder countsper full rotation of the motor. Steps is the number of microsteps output by themotion processor per full rotation of the motor. Since this command sets a ratio,the parameters do not have to be for a full rotation as long as they correctlyrepresent the encoder count to step ratio.
GetEncoderToStepRatio gets the ratio of number of encoder counts to thenumber of output steps per motor rotation.
Restrictions This command is only valid on the MC3410/MC3510.
see Set/GetActualPositionUnits
7/27/2019 Pilot Prog Reference
66/123
Pilot Motion Processor Programmers Reference
66
SetIntegrationLimit (Servo products only) buffered 95hGetIntegrationLimit (Servo products only) 96h
Syntax SetIntegrationLimit axis limitGetIntegrationLimit axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
limit signed 32 bits 0 to 231-1 1/28 count*cycles
Packet structure SetIntegrationLimit0 axis 95h
15 12 11 8 7 0
First data word
write limit(high-order part)31 16
Second data word
write limit(low-order part)15 0
GetIntegrationLimit
0 axis 96h15 12 11 8 7 0
First data word
read limit(high-order part)31 16
Second data word
read limit(low-order part)15 0
Description SetIntegrationLimit loads the integration-limit register of the digital servo filter forthe specified axis.
GetIntegrationLimit returns the value of the current integration limit.Scaling example: The scaling is the same as for the GetIntegral command, namelythat (for example) a constant position error of 100 counts which is present for 256cycles will result in an integral value of 100 (100*256/256) , and therefore anIntegrationLimit value of 100 will limit the total accumulated integration error to25,600 count*cycles.
Restrictions This is a buffered command. The value set using this command will not take effectuntil the next Update instruction.
see GetIntegral, GetDerivative, Set/GetDerivativeTime, Update
7/27/2019 Pilot Prog Reference
67/123
Pilot Motion Processor Programmers Reference
67
SetInterruptMask 2FhGetInterruptMask 56h
Syntax SetInterruptMask axis interruptMaskGetInterruptMask axis
Arguments Name Instance Encoding
axis Axis1 0
interruptMask Motion completeWrap-aroundBreakpoint 1Capture receivedMotion errorIn positive limitIn negative limitInstruction errorCommutation errorBreakpoint 2
0001h0002h0004h0008h0010h0020h0040h0080h0800h4000h
Packet structure SetInterruptMask0 axis 2Fh
15 12 11 8 7 0
mask
write 0 0 0 0 0 014 11 8 7 0
GetInterruptMask
0 axis 56h15 12 11 8 7 0
mask
read14 11 8 7 0
Description SetInterruptMask determines which bits in the Event Status register of the specifiedaxis will cause a host interrupt. For each interrupt mask bit that is set to 1, thecorresponding Event Status register bit will cause an interrupt when that statusregister bit goes active (is set to 1). Interrupt mask bits set to 0 will not generateinterrupts.
GetInterruptMask returns the current mask for the specified axis.
Example: The interrupt mask value 28h will generate an interrupt when either the"in positive limit" bit or the "capture received" bit of the event status register goesactive (set to 1).
Restrictions
see ClearInterrupt, GetInterruptAxis
7/27/2019 Pilot Prog Reference
68/123
Pilot Motion Processor Programmers Reference
68
SetJerk buffered 13hGetJerk 58h
Syntax SetJerk axis jerkGetJerk axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
jerk unsigned 32 bits 0 to 231-1 1/232 counts/cycle3
Packet structure SetJerk0 axis 13h
15 12 11 8 7 0
First data word
write jerk(high-order part)31 16
Second data word
write jerk(low-order part)15 0
GetJerk
0 axis 58h15 12 11 8 7 0
First data word
read jerk(high-order part)31 16
Second data word
read jerk(low-order part)15 0
Description SetJerk loads the jerk register in the parameter buffer for the specified axis.
GetJerk reads the contents of the Jerk register.
Scaling example: To load a jerk value (time rate of change of acceleration) of.012345 counts/cycle3 multiply by 232 or 4,294,967,296. In this example this givesa value to load of 53,021,371 (decimal) which corresponds to a high word of0329h and a low word of 0ABBh when loading each word in hexadecimal.
Restrictions SetJerk is a buffered command. The value set using this command will not takeeffect until the next Update instruction.
This command is used only with the S-curve profile mode. It is not used with thetrapezoidal, or velocity contouring modes.
see Set/GetAcceleration, Set/GetDeceleration, Set/GetPosition,
Set/GetVelocity, Update
7/27/2019 Pilot Prog Reference
69/123
Pilot Motion Processor Programmers Reference
69
SetKaff (Servo products only) buffered 93hGetKaff (Servo products only) 94h
Syntax SetKaff axis KaffGetKaff axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
Kaff unsigned 16 bit 0 to 215-1 unity -
Packet structure SetKaff0 axis 93h
15 12 11 8 7 0
Data
write Kaff15 0
GetKaff
0 axis 94h15 12 11 8 7 0
Data
read Kaff15 0
Description SetKaffsets the acceleration feedforward gain of the digital servo filter for thespecified axis.
GetKaffreads the current value of the acceleration feedforward gain.
Restrictions SetKaffis a buffered command. The value set using this command will not takeeffect until the next Update instruction.
This command is not valid on the MC2400 and MC2500.
see Set/GetKd, Set/GetKi, Set/GetKout, Set/GetKp, Set/GetKvff, Update
7/27/2019 Pilot Prog Reference
70/123
Pilot Motion Processor Programmers Reference
70
SetKd (Servo products only) buffered 27hGetKd (Servo products only) 52h
Syntax SetKd axis KdGetKd axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
Kd unsigned 16 bit 0 to 215-1 unity -
Packet structure SetKd0 axis 27h
15 12 11 8 7 0
Data
write Kd15 0
GetKd
0 axis 52h15 12 11 8 7 0
Data
read Kd15 0
Description SetKd sets the derivative gain of the digital servo filter for the specified axis.
GetKd reads the current value of the derivative gain.
Restrictions SetKd is a buffered command. The value set using this command will not takeeffect until the next Update instruction.
see Set/GetKaff, Set/GetKi, Set/GetKout, Set/GetKp, Set/GetKvff, Update.
7/27/2019 Pilot Prog Reference
71/123
Pilot Motion Processor Programmers Reference
71
SetKi (Servo products only) buffered 26hGetKi (Servo products only) 51h
Syntax SetKi axis KiGetKi axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
Ki unsigned 16 bit 0 to 215-1 unity -
Packet structure SetKi0 axis 26h
15 12 11 8 7 0
Data
write Ki15 0
GetKi
0 axis 51h15 12 11 8 7 0
Data
read Ki15 0
Description SetKi sets the integral gain of the digital servo filter for the specified axis.
GetKi reads the current value of the integral gain.
Restrictions This is a buffered command. The value set using this command will not take effectuntil the next Update instruction.
see Set/GetKaff, Set/GetKd, Set/GetKout, Set/GetKp, Set/GetKvff, Update.
7/27/2019 Pilot Prog Reference
72/123
Pilot Motion Processor Programmers Reference
72
SetKout (Servo products only) 9EhGetKout (Servo products only) 9Fh
Syntax SetKout axis KoutGetKout axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
Kout unsigned 16 bit 0 to 216-1 100/216 % output
Packet structure SetKout0 axis 9Eh
15 12 11 8 7 0
Data
write Kout15 0
GetKout
0 axis 9Fh15 12 11 8 7 0
Data
read Kout15 0
Description SetKout sets the output scale factor of the digital servo filter for the specified axis.The default value of Kout is 65535.
GetKout reads the current value of the output scale factor.
Example:
To set the output scaling of the servo filter to half, set the Kout register to 32767.
Restrictions This command is NOT buffered. It will take affect immediately after it is sent.
see Set/GetKaff, Set/GetKd, Set/GetKi, Set/GetKp, Set/GetKvff
7/27/2019 Pilot Prog Reference
73/123
Pilot Motion Processor Programmers Reference
73
SetKp (Servo products only) buffered 25hGetKp (Servo products only) 50h
Syntax SetKp axis KpGetKp axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
Kp unsigned 16 bit 0 to 215-1 unity -
Packet structure SetKp0 axis 25h
15 12 11 8 7 0
Data
write Kp15 0
GetKp
0 axis 50h15 12 11 8 7 0
Data
read Kp15 0
Description SetKp sets the proportional gain of the digital servo filter for the specified axis.
GetKp reads the current value of the proportional gain.
Restrictions SetKp is a buffered command. The value set using this command will not takeeffect until the next Update instruction.
see Set/GetKaff, Set/GetKd, Set/GetKi, Set/GetKout, Set/GetKvff, Update
7/27/2019 Pilot Prog Reference
74/123
Pilot Motion Processor Programmers Reference
74
SetKvff (Servo products only) buffered 2BhGetKvff (Servo products only) 54h
Syntax SetKvff axis KvffGetKvff axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
Kvff unsigned 16 bit 0 to 215-1 unity -
Packet structure SetKvff0 axis 2Bh
15 12 11 8 7 0
Data
write Kvff15 0
GetKvff
0 axis 54h15 12 11 8 7 0
Data
read Kvff15 0
Description SetKvffsets the velocity feedforward gain of the digital servo filter for the specifiedaxis.
GetKvffreads the current value of the velocity feedforward gain.
Restrictions SetKvffis a buffered command. The value set using this command will not takeeffect until the next Update instruction.
see Set/GetKaff, Set/GetKd, Set/GetKi, Set/GetKout, Set/GetKp, Update
7/27/2019 Pilot Prog Reference
75/123
Pilot Motion Processor Programmers Reference
75
SetLimitSwitchMode 80hGetLimitSwitchMode 81h
Syntax SetLimitSwitchMode axis modeGetLimitSwitchMode axis
Arguments Name Instance Encodingaxis Axis1 0
mode offon
01
Packet structure SetLimitSwitchMode0 axis 80h
15 12 11 8 7 0
Data
write 0 mode15 1 0
GetLimitSwitchMode
0 axis 81h15 12 11 8 7 0
Data
read mode
15 1 0
Description SetLimitSwitchMode enables (On) or disables (Off) limit-switch sensing for thespecified axis. When the mode is enabled, the axis will cause the correspondinglimit-switch bits in the Event Status register and Activity Status register to be setwhen it enters either the positive or negative limit switches and the axis will beimmediately stopped. When it is disabled these bits are not set, regardless ofwhether the axis is in a limit switch or not.
GetLimitSwitchMode returns the code for the current state of the limit-sensingmode.
Restrictions
see GetActivityStatus, GetEventStatus
7/27/2019 Pilot Prog Reference
76/123
Pilot Motion Processor Programmers Reference
76
SetMotionCompleteMode EBhGetMotionCompleteMode ECh
Syntax SetMotionCompleteMode axis modeGetMotionCompleteMode axis
Arguments Name Instance Encodingaxis Axis1 0
mode commandedactual
01
Packet structure SetMotionCompleteMode0 axis EBh
15 12 11 8 7 0
Data
write 0 mode15 1 0
GetMotionCompleteMode
0 axis ECh15 12 11 8 7 0
Data
read mode
15 1 0
Description SetMotionCompleteMode establishes the source for the comparison whichdetermines the motion-complete status for the specified axis. When set tocommanded mode the motion is considered complete when the profile velocityreaches zero and no further motion will occur without an additional host command.This mode is unaffected by the actual encoder location.
When set to actual mode the motion complete bit will be set when the above
condition is true AND the actual encoder position has been within the SettleWindow (SetSettleWindow command) for the number of servo loops specified bythe SetSettleTime command. The settle "timer" is started at zero at the end of thetrajectory profile motion so at a minimum a delay of SettleTime cycles will occurafter the trajectory profile motion is complete.
GetMotionCompleteMode returns the current motion-complete mode.
Restrictions
see Set/GetSettleTime, Set/GetSettleWindow
7/27/2019 Pilot Prog Reference
77/123
Pilot Motion Processor Programmers Reference
77
SetMotorBias (Servo products only) 0FhGetMotorBias (Servo products only) 2Dh
Syntax SetMotorBias axis biasGetMotorBias axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
bias signed 16 bit -215to 215-1 100/215 % output
Packet structure SetMotorBias0 axis 0Fh
15 12 11 8 7 0
Data
write bias15 0
GetMotorBias
0 axis 2Dh15 12 11 8 7 0
Data
read bias15 0
Description SetMotorBias sets the bias voltage of the digital servo filter for the specified axis.
GetMotorBias reads the current bias voltage of the digital servo filter.
Scaling example:
If it is desired that a motor bias value of -2.5 % of full scale be placed on the servofilter output than this register should be loaded with a value of -2.5*32,768/100 = -819 (decimal). This corresponds to a loaded hexadecimal value of 0FCCDh.
Restrictions
see Set/GetMotorCommand, Set/GetMotorLimit
7/27/2019 Pilot Prog Reference
78/123
Pilot Motion Processor Programmers Reference
78
SetMotorCommand buffered 77hGetMotorCommand 69h
Syntax SetMotorCommand axis valueGetMotorCommand axis
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
value signed 16 bit -215to 215-1 100/215 % output
Packet structure SetMotorCommand0 axis 77h
15 12 11 8 7 0
Data
write value15 0
GetMotorCommand
0 axis 69h15 12 11 8 7 0
Data
read value15 0
Description SetMotorCommand loads the motor-command buffer register of the specified axis.
GetMotorCommand reads the contents of the motor-command buffer register.
Scaling example:
If it is desired that a motor command value of 13.7 % of full scale be output to themotor than this register should be loaded with a value of 13.7 *32,768/100 = 4,489(decimal). This corresponds to a hexadecimal value of 1189h.
Restrictions SetMotorCommand is valid only when the motor is off.
SetMotorCommand is a buffered command. The value set using this commandwill not take effect until the next Update instruction.
see Set/GetMotorBias, Set/GetMotorLimit, Set/GetMotorMode, Update
7/27/2019 Pilot Prog Reference
79/123
Pilot Motion Processor Programmers Reference
79
SetMotorLimit (Servo products only) 06hGetMotorLimit (Servo products only) 07h
Syntax SetMotorLimit axis limitGetMotorLimit axis limit
Arguments Name Instance Encodingaxis Axis1 0
Type Range Scaling Units
limit unsigned 16 bit 0 to 215-1 100/215 % output
Packet structure SetMotorL