`
`ABB Inc.
`
`EXHIBIT 1002
`
`Page 1 of 24
`
`Page 1 of 24
`
`
`
`EXHIBIT A ‘
`
`XMC Motion Control
`
`XMCSPI Reference
`
`
`
`
`
`
`
`
`
`Revision:
`Author:
`Date:
`Description:
`
`Third Draft
`Dave Brown
`Wednesday. Feb 22, 1995
`Thus document is the XMCAPI reference descnbing all functions. standard OLE interfaces, and
`custom QLE interfaces making up the XMCAPI.
`
`Revision History: 4/15/94 (DB)
`7/1/94 (DB)
`2122195 (05)
`
`Initial writing.
`- First Draft:
`~ Second Draft: Split design off smatl business plan. incorporated suggestions.
`- Third Draft - Split XMCAPI reference off desrgn guide.
`
`ROY-G-BIV Corporation Confidentiai
`© 1995 ROY—G-BIV Corporation. All right: resorvcd.
`
`Page 2 of 24
`
`Page 2 of 24
`
`
`
`XMC Motion Control XMCSPI Reference
`
`It may be changed substantially prior to final commercial release.
`‘fiiis is a preliminary release ofthc documentation.
`This document is provided for discussion purposes only in strict confidence and is governed by the Don-Disclosure or Beta
`Agreement that you or a representative from your company has signed.
`
`ROY—G—BlV Corporation makes no warranties on the information contained within this document or software. The entire
`risk of using this document or software including the results of its use. remains with the user. No pan of this document
`may be reproduced without express written permission from ROY-G-BIV Corporation.
`
`ROY-G-BIV. XMC. XMCAPI. and XMCSPI are trademarks ofROY-G-BIV Corporation.
`
`Microsoft. Visual C++. Visual Basic. WfN32. and Microsoft Excel 5.0 are registered trademarks and Windows.
`Windows NT. MFC. WlN32s. and OLE are trademarks ol'Microsol“t Corporation.
`
`Borlnnd and Borlnnd C++ are trademarks ofBorland lntemational. Inc.
`
`0 l995 ROY—G-BIV Corporation. All Rights Reserved.
`Printed in the United States ofAmerica.
`
`
`
`
`
`
`
`
`
`
`
`ROY-G-BIV Corporation Confidential
`3/135/95
`©1995 ROY—G-BIV corporation. All Right: Reserved.
`Page Of 24
`
`Page 3 of 24
`
`
`
`
`
`
`
`
`
`XMC Mouon Control XMCSPI Reference
`
`Table of Contents
`
`.
`
`Table of Contents
`
`TABLE OF CONTENTS .............................................................................................................................. i
`
`1.0 OVERVIEW ....................................................................................................._.......................................I
`
`2.0 XMCSPI INTERFACE CATEGORIES ...............................................................................................3.
`2.} STANDARD OLE INTERFACES ............................§.......................................................................................3
`2.3 CORE INTERFACES (CORE) .........................................................................................................................3
`2.3 EXTENDED INTERFACE CATEGORIES ..........................................................................................................2
`2.3.1 Extended Interface: (Ext) .................................................................................
`................................3
`2.3.2 Extended UI Interfaces (ExtUI) ..........................................................................................................3
`2.3.3 Extended Code Generation Interfaces (EXICG) .................................................................................3
`2.4 VENDOR SPECIFIC INTERFACES (EXTVS) .............................................................................'......................4
`2.5 INTERFACE MAP .........................................................................................................................................4
`2.6 INTERFACE RELATIONSHIPS ........................................................................................................................5
`2. 6.1 Inheritance Relatianxhtps ...................................................................................................................5
`2.6.2 Dependency Relationships.............................................................................
`.................................5
`3.0 XMCSPI REFERENCE .......................................................£..................................................................6
`3.1 XMC CORE INTERFACES (CORE) ...............................................................................................................6
`3.1.1 [XMC__DrvCore_Ana1ogI0 Interface .................................................................................................6 '
`3.1.2 IXMC__DrvCare__Dt'gt'ta1IO Interface .................................................................................................6
`3.1.3 IXMC__DrvCare__Dynamt'cState Interface........................................................................................... 7
`3.1.4 IXMC__DrvCore___Encader Interface ................................................................................................... 7
`3. 1.5 IXMC__Dr'vC0re__EnumInterfaceSupport Interface.............................................................................8
`3. 1.6 IXMC_DrvCare__I0 Interface...................................................................................................'..........3
`3.1.7 lXMC_DrvCare__Limt'ts Interface .......................................................................................................8
`3.1.8 IXMC___DrvCare_Mott'on Interface .....................................................................................................9
`3.1.9 [XMC_DrvCore__.S'ervo Interface...;....................................................................................................9
`3.1.10 LYMC__DrvCore_Statt'cState Interface............................................................................................ 10
`3.1.1 I IXMC___DrvCore__Stepper Interface................................................................................................. 10
`3.2 XMC EXTENDED INTERFACES (EXT) .......................................................................................................IO
`3.2.1 IXMC_DrvExt__Counter Interface ..........
`........................................................................................ /0
`3.2.2 IXMC_DrvErt__Debug Interface (Private)........................................................................................ 11
`3.2.3 IXMC__Drv£LtI__D_vnamicState Interface ...........................................................................
`..............1 1
`3.2. 4 IXMC__DrvExt__Digt'ta1IO Interface .................................................................................................. I2
`3.2.5 IXMC__DrvErt__Encoder Interface ....................................................................................................1.7
`3.2. 6 lXMC__Drv£rt__1nterrupt Interface ...................................................................................................12
`3.2. 7 1XMC__Drv£xt_1O Interface ............................................................................................................. 12
`3.2. 8 IXMC__Drv£xt_Jo,vstic1c Interface.....................................................................................................13
`5.2. 9 IXMC_DrvExt__Limt'!s Interface...................................................................................................... ..13
`3. 2. 10 IXMC__DrvErI__M0tt'on Interface .................................................................................................. ..13
`3.2.11 IXMC_DrvEx!__3taliC$1ateInterface............................................................................................. ..14
`3.3.12 1XMC_DrvExt_Timer1nterface .................................................................................................... ..1-/
`3.3 XMC EXTENDED UIINTERFACES (EXTUI) ............................................................................................ ..I5
`3.3.1 1XMC__DrvExtUI_Ana/0gIO Interface............................................................................................ .. 15
`3.3.2 IXMC_Drv£rtUI_Ana1og/O Interface............................................................................................ .. /5
`3.3.3 b\’MC__Drv£xtU1__Ba.re Interface.................................................................................................... .. /5
`3.3.4 IXMC_Drv£xtUI_DynamicState Interface ..................................................................................... ..15
`33.5 IXMC__DrvE.rtUI__Statt'cState Interface ............................................................................................ 15
`3.3.6 /XMC_.DrvE.rtUI__Digt'tat’/0 Interface ............................................................................................ .. /6
`
`___.____.___________________________________..__________________
`ROY-G-BIV Cotporauon Confidenttal
`3/15/95
`Page 4 of 24
`(D 1995 ROY-G-BIV Corporation. All Rlghts Reserved.
`
`‘
`
`__
`
`3
`
`
`
`
`
`Page 4 of 24
`
`
`
`
`
`
`
`XMC Motion Control XMCSPI Reference
`
`Table of Contents
`
`3.3. 7 [XMC__Dr\/Ex! UI__Servo Interface .............................................................................................. .. I 6
`3.4 XMC EXTENDED CODE GENERATION INTERFACES (EXTCG) ........................................................'........ "16
`3. 4. I [XMC___DrvExICG__0perator Interface ................................................................................. .;........ .. I 6
`3.4.2 IXMC_DrvExICCr'__Program Interface........ .f. ................................................................................... I 7
`3.4.3 IXMC__DrvExtCG__ProgramF1ow Interface ..' ................................................................................. .. I 7
`3. 4:4 £XMC_DrvErtC'G__ProgramMgmt Interface .............................................
`..................................... I 8
`3.4.5 b\’MC_DrvExlCG__Subroutine Interface......................................................................................... .. I8
`3. 4. 6 IXMC__DrvEx1CG'__ Variable Interface ................................................................. .§ ........................... I 8
`
`APPENDIX A ...............................................................................................................................................19
`
`AJ REVIEWER FEEDBACK ..........................................................................................................................."19
`A. 1.1 Correspondence ............................................................................................................................. .. I 9
`
`
`
`5
`
`
`ROY-G-BIV Corporatton Confidential
`3/15/95
`©1995 ROY-G-BIV corporauon. Au Rights Reserved.
`Page 5 of 24
`
`Page 5 of 24
`
`
`
`
`
`
`
`Nil‘
`
`
`
`XMC Motion Control XMCSPI Reference
`
`1.0 Overview
`
`1.0 Overview
`
`The XMCSPI is the Service Provider Interface (SP1) implemented by every XMC Driver. This
`layer ofsoftware, used by the XMC Motion Component, controls the specific motion control
`hardware corresponding to the current XMC Driver. Four categories of custom OLE 2.0
`interfaces make up the complete XMCSPI layer. Out ofthe four categories. all XMC Drivers are
`required to implement one category of interfaces called core interfaces. Implementing the other
`three interface categories, called extended interfaces. is recommended, but not required to
`participate in the XMC software model.
`implementing all extended interfaces is recommended
`for it makes the current driver-hardware interaction more precise and more efficient. Since not all
`hardware will support all extended interfaces, implementing them is not required.
`
`This manual describes all core and extended interfaces making up the complete set ofXMCSPI
`custom OLE interfaces. Chapter 2.0 XMCSPI Interface Categories discusses the purpose of each
`category and lists the interfaces that fall in each. Chapter 3.0 extends this discussion by
`describing each interface and the methods they contain.
`
`
`
`
`
`
`ROY-G-BIV Corporation Confidential
`5/95
`in 1995 ROY-G-BIV Corporation. All Rights Reserved.
`Page 6 Of
`
`Page 6 of 24
`
`
`
`
`
`
`
`XMC Motion Control XMCSPI Reference
`
`2.0 XMCSPI interface Categories
`
`2.0 XMCSPI lnterface Categories
`This section describes the categorical grouping ofthe OLE interfaces found in the XMCSPI. Both
`standard and custom OLE interfaces are used in the XMCSPI. OLE 2.0 requires the
`implementation of all interfaces listed in Section 2.! Srandard OLE Interfaces. XMC requires the
`implementation of all interfaces listed in section 2.1 Core Interfaces.
`
`2.1 Standard OLE Interfaces
`The following standard OLE interfaces must be supported by each Motion Control Driver. For
`more information on each interface, see section 2.0 Standard OLE Interfaces in the XMCAPI
`Reference manual.
`
`Standard Interfaces
`IClassFactory
`IUnknown
`
`~
`2.2 Core Interfaces (Care)
`Any absolutely essential functions to motion control problems are in the core set of functions. All
`motion control XMCSPI drivers must implement these core functions. None ofthese functions
`are not allowed to use user—interface objects.
`‘
`
`‘
`
`The following custom OLE 2.0 interfaces are hi the core set ofXMCSPI functions:
`
`'
`
`Custom Core Interfaces
`IXMC_DrvCore_AnalogIO
`IXMC_DrvCore_DigitalIO
`IXMC_DrvCore”DynamicState
`IXMC_DrvCore_Encoder
`IXMC_DrvCore_EnumInterfacesupport
`IXMC_DrvCore_IO (Abstract)
`IXMC_DrvCore_Limits
`IXMC_DrvCore_Motiong(Dependent)
`IXMC_DrvCore_Servo-
`‘ IXMC_DrvCore_StaticState
`IXMC_DrvCore_Stepper
`
`‘
`
`‘
`
`NOTE: The IXMC___DrvCore_Servo interface ‘is only required if the motion control hardware controlled by the
`driver has servo motor support. The same follows for the lXMC_DrvCore__Stepper interface with stepper
`/UOIOFS.
`
`Abstract interfaces are only used by other interfaces as an inheritance base. For example. since
`the IXMC__DrvCore__Digitall0 interface inherits from the IXMC_DrvCore__lO interface, its
`implementation contains all methods in both interfaces. See section 2. 7.} lnherirance
`Relationships for more information on inheritance relationships between interfaces.
`
`Dependent interfaces are only used after the interfaces they are dependent on have perfonned
`certain operations. For example, the IXMC_DrvCore_Motion interface is dependent on either
`the lXMC__DrvCorc_Servo or the IXMC_DrvCore__Stepper interfaces initializing the motion
`system. See section 2.7.2 Dependency Relationships for more infomation on dependency
`relationships between interfaces.
`
`2.3 Extended Interface Categories
`All non-core interfaces in the XMCSPI fall into one ofthe three extended interface categories.
`XMC Drivers are not required to implement any ofthe extended XMCSPI functions. A stub
`driver, called the XMC Driver Stub, implements all extended interfaces, not supported by the
`
`.
`
`‘
`
`
`
`
`
`
`3/1
`age
`
`ROY-G-BIV Corporation Confidential
`to 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`P
`
`Page 7 of 24
`
`
`
`
`
`
`
`
`
`XMC Motion Control XMCSPI Reference
`
`2.0 XMCSPI interface Categories
`
`current driver, that can be emulated using a software algorithm which calls core functions. For
`more information on how the XMC Driver Stub is used. see Section 7.0 Driver Administrator,
`Component, Driver Relationship in the XMC User Guide manual.
`implementing extended
`interfaces directly in the driver can improve the precision and efficiency of the operation. for the
`driver implementation has more direct control over the motion control hardware than the XMC
`Motion Conuol Component. Even greater precision and perfonnance improvements occur when
`the driver can direct the motion control hardware to directly perform a procedure defined in one of
`the extended interfaces.
`
`2.3.1 Extended Interfaces (Ext)
`This set offunctions consists of all non core functions that do not use user—interface objects such
`as dialog boxes or message boxes. The following custom OLE 2.0 interfaces are in the set of
`extended XMCSPI functions:
`
`Custom Ext Interfaces
`IXMC_DrvExt_Counter
`IXMC_DrvExt_Debug (Private)
`IXMC_DrvExt_DynamicState
`IXMC_DrvExt_Encode:
`IXMC_DrvExt_Incerrupt
`IXMC_DrvExt_IO (Abstract)
`IXMC_DrvExt_Joyscick
`IXMC_DrvExt_Limits
`IXMC_DrvExt_Motion (Dependent)
`IXMC___DrvExt_Stat icstate
`IXMC_DrvExt_Timer
`
`2.3.2 Extended U1 Interfaces (ExtUI)
`This XMCSPI set consists of all extended XMCSPI functions that require user-interface objects
`such as dialog boxes or message boxes. For example, when an application requests to tune the
`servo motors, special input may be needed from the user to complete the process. Because tuning
`the servo motors is not a required motion control function and may need input from the user, it is
`in the Extended.UI XMCSPI set of fimctions.
`
`The following custom OLE 2.0 interfaces are in the extended user-interface set of XMCSPI
`functions:
`
`Custom ExtUl Interfaces
`-
`IXMC__Di:vExtUI_A.nalogIO
`IXMC__D rvExt:UI__Base
`IXMC__DrvExtUI__Digi t:alIO
`IXMC___DrvExt:UI__Dynami. cs : ate
`IXMC__DrvExt:U I_Se rvo
`IXMC_Dr:v£xt:UI__Sta:ic:S ca 1: e
`
`2.3.3 Extended Code Generation Interfaces (ExtCG)
`These XMCSPI functions consist of all methods used for code generation only. Most core and
`extended methods generate code also generate code when the XMC software is mo in code-
`gcneration mode. But, where core and extended functions may also be used in real-time and
`mixed modes, Code-generation functions cannot. Code-generation functions are only used when
`running in code-generation mode.
`
` 3/15/95
`ROY-G-BIV Corporatlon Confidential
`8 Of 24
`©1995 ROY-G-BIV Corporation. All Rights Reserved.
`Page
`
`
`
`
`
`
`
`Page 8 of 24
`
`
`
`XMC Motion Control XMCSPI Reference
`
`2.0 XMCSPI Interface Categories
`
`The following custom OLE 2.0 interfaces are in the set of code-generation XMCSPI functions:
`
`Custom ExtCG interfaces
`IXMC DrvExtCG ProgramFlow
`IXMC DrvExtCG Operator
`IXMC D:vExcCG Program
`IXMC DrvExtCG Programmgmt
`IXMC DrvExtCG subroutine
`IXMC DrvExtCG Variable
`ll
`ll
`
`llll
`
`llll
`
`2.4 Vendor Specific Interfaces (ExtVS)
`These functions are not part of the set ofXMCSPI interfaces. No XMCAPI interface methods call
`these functions for they are provided by each vendor as a pass—through method giving vendors
`access to new hardware features not yet supported by the XMC software model. Each
`implementation of vendor specific custom OLE Interfaces depend on the needs of the hardware
`vendor. Applications may communicate directly with these interfaces, but in doing so, they
`automatically become dependent on the specific Motion Conool Driver and therefore become
`hardware-dependent. But, allowing vendor—specific functions to exist gives the software model a
`flexible way to evolve. For example, if one hardware vendor adds a new feature to their motion
`control hardware, not provided by any other vendors, they may gain access to the new feature by
`adding a vendor specific SPI interface to their driver and then directly programming to the SP1
`interface from within the application. Of course, other drivers will not work with applications that
`call the hardware dependent SP1 interface, for they will not implement the interface. As the
`feature becomes more useful over time, other hardware vendors will probably add the feature to
`their hardware. After the feature gains a critical mass of support within the companies supporting
`the XMC sofiware model, the feature will be added to the XMC software model by becoming a
`part of both the XMCSPI and XMCAPI. For more information on vendor specific interface-3, see
`the appropriate XMC Motion Control Extension manual describing the specific XMC Driver
`which includes a reference for each hardware-dependent driver interface.
`
`'
`
`2.5 Interface Map
`The following table displays all Motion Control Driver, XMCSPI interfaces and the categories
`they fall in:
`‘
`
`Core
`“IXMCDrvCore_”
`
`Ext
`“IXMCDrv‘Ext__"
`
`AnalogIO
`
`ExtUI
`“D(MCDrvExtUI__”
`AnalogIO
`Base
`
`Extcc
`“IXMCDrvExtCG_”
`AnaloglO‘
`
`
`
`
`
`
`
`
`Counter
`
`
`
`
`
`_
`
`IO (Abstract)
`-
`
`Debug (Private)
`DigitalIO
`' DigitalIO
`Dynamicstate
`Dynamicstate
`Encoder
`Encoder
`
`Enumlnterface
`interrupt
`[0 (Abstract)
`Joystick
`
`Limits
`Limits
`Motio—ri-(i/-i.”bscraci)_'
`Motion (Absrlct)
`Servo
`Servo
`St.aticStatc
`Staticstaie
`
`Stepper
`Timer
`
`’
`
`DigitallO
`Dynamicstate
`
`_m—m.
`
`Servo
`StatiC5t2-It
`________
`
`—M-‘W
`
`Counter‘
`
`A
`oigitalio""i"""'”"”
`
`Encoder‘
`
`lnterrupt.‘m“-inlvmWW
`IO‘
`Joystick‘
`Limits‘
`Motion-7 —”w-mwmw
`Servo‘
`
`Stepper‘
`Timer‘ M’ “W.
`
`_
`
`
`ROY-G-Blv Corporation Confldantlal
`3/1 /95
`en 1995 ROY-G-BIV Corporation. All Rights Reserved.
`Page , of 24
`
`Page 9 of 24
`
`
`
`
`
`
`
`
`XMC Motion Control XMCSPI Reference
`
`2.0 XMCSPI Interface Catngorlos
`
`Operator
`Program
`ProgramFlow
`ProgramMgmt
`Subroutine
`
`
`
`.—~
`
`y
`
`‘ These interfaces generate code implicitly. Calling methods, that immediately cause an action on
`the hardware when run in real-time mode, generate code when run in code-generation mode.
`
`.
`
`"
`
`.
`
`Variable
`
`2.5 Interface Relationships
`This section describes how closely coupled XMCSPI interfaces relate to one another. There are
`two ways interfaces relate to one another.
`interfaces can inherit from each other and can be
`dependent on one another. The following sections describe these relationships and the interfaces
`using them.
`
`2.6.1 Inheritance Relationships
`
`C4-+ inheritance is used to combine two interfaces in such a way that the derived interface
`“inherits” all method definitions in the base interface. Only the method definitions within the base
`interface are inherited. The resulting interface contains implementations of all methods in both
`the derived and the base interface. The following are the inheritance relationships found in the
`XMCSPI:
`
`_
`
`Inheritance Tree
`IXMC_DrvCore_IO
`
`'
`
`l l
`
`~~- IXMC_DrvCore_DigitalIO
`l--- IXMC_DrvCore_AnalogIO
`
`IXMC_DrvExtUI_Base
`
`I l
`
`--- IXMC DrvExtUI AnalogIO
`l--— IXMC:DryExtUI:Digit:a.LIO
`l--- IXMC_Dz:vExt:UI__Dyna.micStace
`l--~ IXMC~DrvExtUI_Servo
`|--- IXMC__DrvExt:UI_St:at'.icStat:e
`
`2.6.2 Dependency Relationships"
`Unlike inheritance relationships, dependency relationships are between two interface
`implementations. When an interface is dependent on another interface, it needs the interface to
`perform an operation before it can continue one ofits own operations. For example, the
`IXMC_DrvCore_Motion interface is dependent on the IXMC__DrvCore_Stepper interface
`initialization routine. Before using the IXMC__DrvCore__Motion interface, the
`IXMC__DrvCore__Ste-pper interface must be used to initialize the stepper system. The following
`are the dependency relationships found in the XMCSPI:
`
`Dependency Tree
`IXMC__Dr:vCore__Motion —-I
`IXMC__DrvExt_Mo’:.ion ---I
`
`l-l
`
`(dependen: on)
`I
`V
`
`l--- IXMC_DrvCore_Stepper
`l——-
`IXMC_D:vCore_Servo
`
`ROY-G-EN Corporation Confidential
`D 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`Page 10 of 24
`
`
`
`
`
`
`Page 10 of 24
`
`
`
`
`
` 7257wellfl
`
`
`
`XMC Motion Control XMCSPI Reference
`
`3.0 XMCSPI Reference
`
`3.0 XMCSPI Reference
`
`3.1 XMC Core Interfaces (Core)
`
`Core functions are the lowest level primitive motion control functions implemented by all
`hardware vendors that software cannot duplicate in an algorithm that uses other methods, such as
`those in me Motion Control Driver Stub. This section describes each custom OLE 2.0 interface
`within the set of core interfaces.
`»
`
`3.1.1 IXMC_DrvCore_AnalogIO Interface
`The IXMC__DrvCore__AnalogIO interface inherits from the IXMC_DrvCore__IO interface and
`implements all of its methods. This interface take care of initializing the analog I/O system used.
`All I/O work is carried out by the IXMC__DrvCore__lO interface.
`
`Inheritance
`
`IXMC__DrvCore___IO
`
`l l
`
`------ IXMC__DrvCore__AnalogIO
`
`.
`V
`Configuration
`('pDrvCore___A.nalogIO) ->Initialize ()
`
`3.1.2 D(MC__DrvCore__DigitalIO Interface
`Similar to the IXMC_DrvCore_AnalogIO interface, the IXMC_DrvCore__DigitalIO interface is
`also inherits from the LXMC_DrvCore___IO interface. The l'XMC__DrvCore__DigitalIO interface
`takes care of initializing the digital I/O system, and the IXMC_DrvCore__I0 interface takes care
`of all other operations.
`*
`-
`.,
`
`Inheritance
`
`IXMC__DrvCore_IO
`.
`I
`l ---- —— IXMC__D:vCore__Digit;alIO
`
`Configuration
`(*pDrvCore__Digit:alI_Ol ->Init:ialize'()
`
`'
`
`"
`
`
`
`
`ROY-G-Blv Corporation Confidential
`3/15/95
`Page 11 of 24
`D 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`Page 11 of 24
`
`
`
`3.0 XMCSPI Reference
`XMC Motion Control XMCSPI Reference
`
`3.1.3 IXMC_DrvCore_DyinamicState Interface
`The IXMC__DrvCore__DynamicState interface manages the overall state ofthe motion control
`system. Included in its management tasks are initializing and shutting down the system. The
`current state information may be queried or changed at any time after the system is initialized.
`
`State information
`
`typede 13 st ruct: ___XMC__DYNAMICSTATE IN F0
`l
`
`X.MC___S'I‘ATICSTA'I‘£
`double
`double
`double
`double
`double
`double
`double
`HRESULT
`XMC_OP_MODE
`XMC_AXIS_DATA
`XMC_AXIS DATA
`) xMc_oYNAMfcs'rAr2 mro;
`
`' pXMCDC;
`dfAc:ua1Position:
`dfCommandedPosition;
`dfA:cualVelocicy:
`dfcommandedvelocity;
`dfPosicion£:ro:;
`dfAcceleration:
`dfbeceleration:
`hfirrorstatus:
`operacingmodei
`*pLeftLimitDaca;
`'pRightLimitData;
`
`‘
`
`Configuration
`("pDrvCore_DynSt ) ->Reset ()
`(‘pDrvCore_DynSt) ->Init:ialize ()
`('pDrvCo re__DynSt) ~>Shut.Down ()
`
`‘
`
`'
`
`Querying Attributes
`("pDrvCore___DynSt) —>Get:Erro:r:St:atus ()
`("pDr:vCore__DynSt:) ->Get:St:a1:e ()
`
`Setting Attributes
`("pDrvCore__DynSt) ->CJ.eaz:E:rors ll
`('pDrvCox:e___DynSt) -->SetState ()
`
`3.1.4 IXMC_DrvCore_Enci)der Interface
`The IXMC__DrvCore_Encoder interface implements several optimized functions used to query
`positions. Calling the IXMC__DrvCore__DynamicSrate::GeISIate0 method will also collect the
`position information, but at the expense of collecting all other current state data. The methods
`specified by this interface only collect the data requested.
`
`‘
`
`" Querying Attributes
`('pDrvCor:e___Mot:ion) ->GetPositiortA<:t:ual ()
`('pDrvCore__Mocion) -->Get:Posit::i.onE.rror ()
`
`NOTE: Currently. this interface is classified as a core set of XMCSPI. hut it may be changed to an extended
`set of XMCSPI instead.
`
`
`
`
`
`
`
`
`
`.
`
`
`
`
`
`
`
`
`3/15/95
`ROY-G-BIV Corporation Confidential
`©1995 ROY»G-BIV Corporation. All Rights Reserved.
`
`Page 12 of 24
`
`Page 12 of 24
`
`
`
`
`
`
`§lll3?\{i1§1i§‘
`
`
`
`
`
`XMC Motion Control XMCSPI Reference
`
`3.0 XMCSPI Reference
`
`3.1.5 IXMC__DrvCore__EnuxnInterfaccSupport Interface
`The IXMC_DrvCore_Enuminterfacesupport interface is used to query a list ofinterfaces
`meeting the specific search criteria set with the
`IXMC__DrvCore__Enum[nteiy’aceSupp0rt.'.'Se!SearchCrireria0 method,,
`
`Inheritance
`IEnumX
`
`I l
`
`--- IXMC__DrvCore__EnumIm:e rfacesupport
`
`Setting Attributes
`('pDrvCore__EnumIFace) ->setSearchCrit:e:ia ()
`
`3.1.6 IXMC___DrvCore__IO Interface
`This interface consists ofall digital input and output related functions. The following methods are
`available from each Motion Control Driver in the IXMC_DrvCore_DigitalIO interface:
`
`Configuration
`("pDx:vCore__IO) ->Init:ialize ()
`
`Actions
`
`("pDrvCore__IO) ->Read ()
`("pDrvCore__IO) —>W:i.t;e ()
`
`u
`
`3.1.7 IXMC__DrvCore_Limits Interface
`The [XMC__DrvCore__Limits interface is used to set software limits for a set of axes. When
`setting limit values, two arrays containing A/YIS_DA TA elements are used to transfer the settings
`to the method.
`*-
`
`Setting Attributes
`1
`( 'pDrvCore_Limi:s ) —>Set:Lim:Lt Positions ( )
`
`NOTE: Currently. this interface is classified as a core set of XMCSPI. but it may be changed to an extended
`set of XMCSPI instead.
`
`
`
`
`
`
`
`
`ROY-G-BIV Corporation Confidential
`3/15/95
`01995 ROY-G~BlV Corporation. All Rights Reserved.
`Of
`
`Page
`
`Page 13 of 24
`
`
`
`XMC Motion Control XMCSPI Reference
`
`3_o xmcspl Raferance
`
`3.1.8 IXMC__DrvCore_Motion Interface
`This IXMC__DrvCore__Motion interface is a dependant interface in that it may only be used after
`cither the‘lXMC__DrvCore__Stepper or IXMC__DrvCore__Servo interfaces are used to initialize
`the system. All primitive motion control functions that are absolutely necessary to solve motion
`control software problems are placed in this interface. Also. each function in this set should be a
`primitive that can not be duplicated through a software algorithm built on top of other primitive
`functions. The following methods are available from each Motion Control Driver in the
`IXMC_‘_DrvCore__MotionControl interface:
`
`Querying Attributes
`('pDrvCore___Mot:ion) ->Get:CommandedPosit:ion ()
`('pDrvCore__Mot:ion) —>Get:Act:ualPosit:ion ()
`('pDrvCore_Mot:ion) ->Get:CommandedVelocit:y ()
`(*pDrvCor:e__Mot'.ion) ->Ge:Accua1ve1ocity ()
`
`Setting Attributes
`("pDr:vCore__Motion) ->Set:VeJ.ocity ll
`(*pDrvCore__Mot:ion) —>Set:Posicion (l
`
`Actions
`
`("pDrvCoz:e___Motion) ->Kill ()
`("pDrvCore__Motion) ->MoveAbs ()
`(*pDrvCore Motion) ->MoveCon1:inous ()
`('pDrvCore:Motion) ->Stop ()
`
`3.1.9 IXMC__DrvCore___Servo Interface
`The IXMC__DrvCore_Servo interface handles all operations specific to servo motors. All motion
`operations are performed by the IXMC__DrvCore__Motion interface. The following methods are
`in the IXMC_DrvCore_Servo interface:
`
`Dependency
`IXMC__DrvCore__Mot:ion
`I
`.
`
`I ------ IXMC__‘DrvCore__Se rvo
`
`Configuration
`('pDrvCore_Servo)->In:i.t:ialize()
`("pDrvCore__Servo) ->Tune ()
`
`-
`
`
`
`
`
`
`
`
`
`
`i»'lfli’:‘m§‘
`
`
`
`
`
`
`ROY-G-BIV Corporation Confidential
`3/15/95
`Page 14 of 24
`Q 1995 ROY-(3-Blv Corporation. All Rights Reserved.
`
`Page 14 of 24
`
`
`
`
`
`
`<lame*
`
`
`
`
`XMC Motion Control XMCSPI Reference
`
`3.0 XMCSPI Reference
`
`3.1.10 IXMC__DrvCore_StaticState Interface
`The I.XMC__DrvCore__StaticState interface manages all static state information defining the
`system. Like the current state information, the device context information may be queried at any
`time after the system is initialized. But. unlike the current state information, the device context
`information is only set during the initial setup of the system.
`
`State information
`
`typedef struct: __XMC___STATICSTATEINFO
`l
`
`dflincodercountsPeraevolutioni
`double
`dfMMPe:Revo1ut:i.on:
`double
`cblxxiscount:
`int
`cbAxisMax;
`int
`XMCMOTORTYPE
`rnot:o:’I‘ype:
`l X.MC_STATICSTATEINFO:
`
`Querying Attributes
`l"pDrvCore_Stat:St:) ->Get:St:at:e ()
`
`Setting Attributes
`("pDrvCore__St:atSt) -->Set:State()
`
`__
`
`3.1.11 IXMC_DrvCore_Stepper Interface
`The IXMC_DrvCore__Stepper interface handles all operations specific to stepper motors. All
`motion operations are performed by the IXMC__DrvCore__Motion interface. The following
`methods are in the IXMC__DrvCore_Stepper interface:
`
`».
`
`Dependency
`IXMC___DrvCore__Mot:ion
`
`l I
`
`----— IXMC_DrvCore___S tepper
`
`,
`Configuration
`(*pDrvCot:e_step;':>er) ->Init:ialize ()
`
`-
`
`3.2 XMC Extended Interfaces (Ext) .
`Extended interfaces contain methods that are not required. These interfaces are either duplicated
`by the Motion Control Driver Stub or contain functionality not essential in most motion control
`problems. However, implementing these interfaces will optimize the performance ofthe motion
`control system for a particular set of hardware. This section describes all extended interfaces
`within XMCSPI.
`
`3.2.1 IXMC_DrvExt_Counter Interface
`The IXMC__DrvExt_Counter interface is used to operate a counter implemented by the motion
`control hardware.
`
`Querying Attributes
`('pDi:vExt__Count:er) —>GecCount;e : ()
`
`Actions
`l'pDrvExt: Counter)->EnableInce::up:l)
`l"pDrvExt::Coun:er) ->Reset ll
`('pDrvExt: Counter.-)~>st:art()
`('pDrvExc:-Counter)->Stop(l
`
`
`ROY-G-Blv Corporation Confidential
`3/15/95
`©1995 ROY-G-Blv Corporation. All Rights Reserved.
`Page
`Of
`
`
`
`
`
`
`
`Page 15 of 24
`
`
`
`XMC Motion Control XMCSPI Reference
`
`3.0 XMCSPI Reference
`
`3.2.2 IXMC___DrvExt_Debug Interface (Private)
`The lXMC__DrvExt__Debug interface is a private interface used by the Manon Control
`Component, if available. When implemented, the interface is used when debugging the Motion
`Control Driver.
`
`y
`Setting Attributes
`('pDrvExt:___Debug) ->SetRawDataInDumpE‘ile ()
`l'pDrvExt:_Debug) ->SetRawDacaOutDu.mpEi.le ll
`('pDrvExt__Debug) ->SetXMCSPILogl:‘ile ( l
`
`Actions
`
`('pD:rvExt__Debug) ->EnableRawDat:aDump ()
`("pDrvExt;___Debug) —>EnableXMCS PILogging ( l
`
`3.2.3 IXMC__DrvExt___DynatnicState Interface
`The IXMC__DrvExt__DynamicState interface manages the extended, dynamic stateof the motion
`control system. The extended current state information may be queried or changed at any time
`after the system is initialized.
`
`‘
`
`5
`5
`
`
`
`
`
`‘
`
`State lnformation
`
`typedef struct
`l
`
`DWORD
`
`XMC__EXTDYNAMICS'I‘ATE INFO
`
`XMC__EX'I‘STATICSTATEINE‘O
`double
`double
`double
`double
`double
`double
`POS_DATA
`POS_DATA
`POS_DATA
`POS_DATA
`double
`BOOL
`BOOL
`BOOL
`BOOL
`BOOL
`BOOL
`BOOL
`BOOL
`BOOL
`) XMC_EXTDYNAMICSTATEINFO;
`
`1
`.
`
`Querying Attributes
`l 'pDrvCore__DynSt ) ->GetStace ( )
`
`Setting Attributes
`('pDi:vCore__DynSt) —>set:St:a:e ()
`
`dwSupportedPope rties;
`
`"'pE.xtXMCDC:
`dfLimitDeceleration;
`dfJogVelocityHigh;
`dfJogVelocityLow;
`dfJoystickVelocityHigh;
`dfJoystickVelocityLow;
`dfFeedRate:
`*pHomePosition:
`'pzeroPosition;
`'pLimitSWFwdPosition;
`*pLimitSWBwdPosition;
`dfLimitDeceler



