Pilot Prog Reference

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