`
`
`
`EXHIBIT 3EXHIBIT 3EXHIBIT 3
`
`
`
`
`
`
`
`
`
`
`
`ABB Inc.ABB Inc.ABB Inc.
`
`
`
`
`
`EXHIBIT 1003 EXHIBIT 1003 EXHIBIT 1003
`
`
`
`
`
`Page 1 of 18Page 1 of 18Page 1 of 18
`
`Page 1 of 18
`
`
`
`EXHIBIT B
`
`XMC Motion Control
`
`-
`
`XMCAPI Reference
`
`
`
`
`
`
`
`
`
`:4
`
`
`
`
`%i1%¥3?.§:§§£
`
`
`
`
`
`Revision:
`Author:
`Date:
`Doscnpuon:
`
`Third Draft
`Dave Brown
`Wednesday. Feb 22. 1995
`This document is me XMCAPI reference descnoing all functions. standard OLE interfaces. and
`custom OLE interfaces making up me XMCAPI.
`
`Revision History: 4/15/94 (DB)
`7/1/94 (DE)
`2/22/95 (05)
`
`Initial wming.
`- First Draft:
`- Second Draft: Split oesign of! small business Dian. incorporated suggestions.
`- Third Draft - Split XMCAPI reference off design guide.
`
`-0.
`
`ROY-G—BlV Corporation Confidential
`© 1995 ROY-G-BIV Corporation. All rights reserved.
`
`Page 2 of 18
`
`Page 2 of 18
`
`
`
`XMC Motion Control XMCAPI Reference
`
`‘
`it may be changed substantially prior to final commercial release.
`This is a preliminary release ofthe 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.
`‘Die entire
`formation contained within this document or software.
`ults of its use. remains with the user. No part of this document
`ROY-G-BIV Corpomion.
`
`ROY-G-BXV Corporation makes no warranties on the in
`risk of tmng this document or soficware including the res
`may be reproduced without express written permission from
`ROY~G—BW. XMC. XMCAPL and XMCSPI an: trademarks ofROY«G-BIN‘ Corporation.‘
`
`Microsoft. Visual C++. Visual Basic. WFNJZ. and Microsoft Excel 5.0 are registered trademarles and Windows.
`Windows NT. MFC. Wmlls. and OLE are trademarks ofMierosofl Corporation.
`
`Borlnnd and Borlnnd C++ are uademarks ofBorl:tnd lntemational. inc.
`
`0 I995 ROY-G-BXV Corporation. All Rights Reserved.
`Printed in the United States ol'America.
`
`
`
`
`
`
`
`
`
`
`
`
`§ll§l”:§!lK§fi§§ill
`
`
`
`
`-o.
`
`ROY-G—BlV Corporation Confidential
`0 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`3115/95
`
`Page 3 of 18
`
`Page 3 of 18
`
`
`
`XMC Motion Control XMCAPI Rnfurunco
`
`Table of Conant:
`
`Table of Contents
`
`TABLE OF CONTENTS ........................................
`
`.................................................................................... i
`
`1.0 OVERVIEW ............................................................................................................................................1
`
`............................................................2
`2.0 STANDARD OLE INTERFACES ...........................................
`2.1 ICLASSFACTORY INTERFACE .....................................................................................................................3.
`2.2 IDISPATCH INTERFACE ...............................................................................................................................2
`2.3 IENUMX INTERFACE ..................................................................................................................................2
`2.4 IUNKNOVVN INTERFACE.............................................................................................................................3
`3.o XMC DRIVER ADMINISTRATOR .....................................................................................................3
`3.1 STANDARD OLE INTERFACES ....................................................................................................................3
`3.2 CUSTOM OLE INTERFACES ............................................................
`.........................................................3
`3.2.] IXMC_DriverAdmin ...........................................................................................................................3
`3.2.! [XMC__EnurrtDrr"ver ................................................'............................................................................-I
`4.0 XMC MOTION CONTROL CONIPONENT .....................................................................................__5
`4.1 STANDARD OLE INTERFACES ...................................................'.................................................................5
`4.2 Cusrom OLE INTERFACES - MOTION CONTROL .......................................................................................6
`4.2.1 [XMC_Caunter Interface....................................................................................................................6
`4.2.2 IXMC___Dynamt'cState Interface...........................................................................................................6
`4.2.3 lXMC__Encader Interface ................................................................................................................... 7
`4.2. 3 IXMC__EnumInterface Interface ......................................................................................................... 7
`4.2.5 D(MC__I0 Inte ace.............................................................................................................................8
`4. 2. 6 IXMC_Jay:tt'ck Interface ..........................................................................................................
`.......8
`4.2. 7 1XMC__Limit.s' Inter7“ace .......................................................................................................................8
`4.2.8 I/YMC_Motian Interface .....................................................................................................................9
`4.2.9 I/\’MC_StaticState Interface.............................................................................................................. I0
`4.2.10 [XMC___Timer Interface................. .._':................................................................................................ I0
`4.3 CUSTOM OLE INTERFACES - CODE GENERATION .................................................................................... I 0
`4.3.1 1XMC__Oper__r._ztor Interface ................................................................................................................ I I
`4. 3.2 IXMC__Prograrn Interface......................
`......................................................................................... II
`4.3.3 IXMC__ProgramFIaw Interface ................
`...................................................................................... I2
`4. 3. 4 lXMC_ProgramMgmt Interface ....................................................................................................... I2
`4.3.5 1XMC__Subroutt'ne Interface ...............................................................................................
`............ 13
`4.3.6 IXMC_ Variable Interface ............................................................................................................... .. I 3
`4.4 CUSTOM OLE INTERFACES - DIAGNOSTIC ...............................................................................................13
`4.4.1 1XMC__Errar Interface .................................................................................................................... .. I 3
`4. 4.2 IXMC_Debug Interface ................................................................................... .., ............................ .. I3
`APPENDIX A ............................................................................................................................................"14
`A.l REVIEW!-ZR FEEDBACK ........................................................................................................................... ..I4I 4
`A. I . I Correspondence ............................................................................................................................. ..
`
`
`
`
`
`
`
`.
`
`<.
`
`ROY-G-BIV Corporauon Confidential
`D 1995 ROY-G-BIV Comoranon. All Right: Reserved,
`
`3115195
`
`Page 4 of 18
`
`Page 4 of 18
`
`
`
`
`
`
`
`XMC Motion Control XMCAPI Reference
`
`1.0 Overview
`
`1.0 Overview
`To use XMC. applications call the methods defined by the XMCAPI OLE interfaces to perform
`the motion control services needed. The full XMCAPI comprises a set ofOLE interfaces
`corresponding with common objects found in a motion control system. For example. a motion
`control system may contain servo and stepper motors. encoders,.limit switches. and ajoystick.
`Within the XMCAPI are interfaces corresponding to each of these objects. The full XMCAPI
`contains implementations ofboth standard OLE 2.0 interfaces and a rich set ofcustom OLE
`interfaces designed specifically for motion control.
`
`This reference manual describes all OLE interfaces in the XMCAPI. Each section discussing an
`interfaces starts with a description of the interface and how it is used. Next, all functions in the
`interface are listed by eatagory.
`
`Chapter 2.0 Standard OLE Interfaces, describes all standard interfaces exposed in the XMCAPI.
`Next, Chapter 3.0 XMC Driver Administrator, discusses both the standard and custom
`interfaces exposed by the Driver Administrator that make up a small portion of the XMCAPI.
`Finally, Chapter 4.0 XMC Motion Control Component, discusses the standard and custom
`interfaces exposed by the Motion Control Component. The Motion Control Component
`implements and exposes the majority of the XMCAPI. Together, the Motion Control Component
`and the Driver Administrator implement and expose the fiill set of interfaces defined by the
`XMCAPI.
`V
`.
`
`_
`
`
`
`c.
`
`__.__________________________________.____.____.____I.._________
`3115/95
`ROY-G-8lV Corporation Confidential
`D 1995 ROY—G-BIV Corporation. All Rights Reserved.
`
`Page 5 of 18
`
`Page 5 of 18
`
`
`
`
`
`XMC Motion Comml XMCAPI Hnfnrvnce
`
`2.0 Standard ote lntorfacou
`
`I
`
`Standard OLE lnterfaces
`lowing the OLE sofivvare model.
`Several standard OLE interfaces must be supported when fol
`Both the [Unknown and lClassFactory interfaces are examples ofrequired interfaces. The
`IDataObject interface is used when transferring or caching data. The [Dispatch is provided to
`support OLE Automation between processes. This section describes all standard OLE interfaces
`used by the Driver Administrator, Motion Control Component. and Motion Control Drivers.
`
`2. 1 lClassFactory Interface
`The IClassFaetory interface is used to create an instance of an object and re
`pointer to an interface.
`'
`’
`
`turn to the caller a
`
`General
`('pCE‘) ->C::eat:eInst;ance H
`(‘PCS’) ->LockSe:ver (l
`
`2.2 [Dispatch Interface
`The [Dispatch interface is used to support OLE Automation. Normally, this interface is used by
`the OLE Automation engine, not die C/C++ application developer.
`
`General
`('pDisp) —>GetIDsOfNames ()
`('PDiSP) ->Get:'I'ypeInfo ()
`('pDisp)->Get:'I‘ypeInfoCour1tll
`("pDisp) ->Invol<e (l
`
`2.3 IEnumX Interface
`The IEnumX interface is a generic OLE
`fi'om. This interface is used to create and move
`IXMC__EnutnInterface interface inherits from
`querying functionality.
`
`".
`
`interface that other enumeration interfaces always inherit
`through an enumeration of data. The
`IEnumX to implement the interface support
`
`General
`(‘pf-Jnum) —>Next ()
`("pEnum) ~->skip ()
`("pEZnum) -->Re5et()
`(‘pl-lrtuml ->Clone()
`
`‘
`
`2.4 IUnkno_wn Interface
`The lUnknown interface is a standard OLE interface exposed by all OLE objects.
`common base interface.
`
`yitisa
`
`In a Wa
`
`General
`l'PUnl<l ->QueryInt'.e:face ()
`('2-'JUnlc) ->AddRef ()
`l'pUn><) ->Release ()
`
`<0.
`
`ROY-G—8lV Corporation Confidential
`6D 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`3115195
`
`Page 6 of 18
`
`
`
`Page 6 of 18
`
`
`
`
`
`
`
`
`
`
`
`
`XMC Motion Control XMCAPI Reference
`
`3.0 XMC Drlvor Administrator
`
`3.0 XMC Driver Administrator
`The Driver Administrator, which implements a small subset ofthe XMCAPI set of functions. is
`used by both the user and the Motion Control Component.
`it is used by the user to add new
`Motion Control Drivers, configure existing drivers. and remove old ones. Later when an
`application uses the Motion Control Component. the component queries the Driver Administrator
`for the current driver to use.
`
`NOTE: OLE 2.0 interfaces are used to implement all functions in the XMCAPI.
`
`The following OLE 2.0 interfaces are custom OLE interfaces in the XMCAPI supported by the
`Driver Administrator.
`v
`
`IXMC_D:ive:Admin
`
`3.1 Standard OLE Interfaces
`The following standard OLE interfaces are supported by the Driver Administrator. ‘ For more
`information on each interface. see section 6.0 Standard OLE Interfaces.
`
`_
`
`IClassFactory
`IDispacch
`Iflnknown
`
`3.2 Custom OLE Interfaces
`
`'" The following custom interface
`software model.
`
`is a part of the XMCAPI and an extension to the OLE 2.0
`
`3.2.1 DflVIC___DriverAdmin
`
`query the Driver Adminisnator settings. The Driver
`This interface is used to manipulate and
`lates the administrator’: settings. And. the
`Administrator application, run by the user. manipu
`r for a pointer to the current driver to use.
`Motion Control Component queries the administrate
`
`Queqcing Attributes
`('pXMCDrvAdmin)—>GetSelectedD:ivers()
`('pXMCDrvAdmin)->IsDiagnos:icTestingOnl)
`('pXMCDrvAdmin)~>IsAPILogg;ngOn()
`l "pXMCDr:vAdmiri) ->IsCkridLoggingOn ( )
`('pXMCDrvAdminl ->IsBitLogg:‘.ngOn ll
`
`Setting Attributes
`l'pXMCDrvAdmin)->SecAPIStream()
`(’pXMCDrvAdmin)->SecCmdSt:eam()
`('pXMCDrvAdmin)—>SeeEi:Sc:eam()
`
`Acfions
`('pXMCD:vAdminl—>EnableAPILogg1nq()
`('pXMCDrvAam1nl->EnaoieCmdLogg;ng()
`('pXMCDrvAdm;n)->Enable5;:Loqg;ng()
`('pXMCD:vAumin)->EnableDiagnos:;csll
`!'pXMCDrvAam;nl—>ViewIn:e:faceSuppor:l)
`
`-co.
`
`ROY-G—BlV Corporation Confidential
`0 1995 ROY-G—BlV Corporation. All Rights Reserved.
`
`3/15/95
`
`Page 7 of 18
`
`
`
`
`
`
`Page 7 of 18
`
`
`
`XMC Motion Control XMCAP! Reference
`
`3.0 XMC Driver Administrator
`
`3.2.1 IXMC_EnumDriver _
`The IXMC_EnumDriver interface is used by the XMC Motion Control Component when
`building the interface enumeration describing the level of XMC support providcd by each driver.
`This interface inherits from the standard IEnumX OLE interface.
`
`
`
`
`
`
`
`
`
`
`
`
`
` 3116195
`ROY-G—8lV Corporation Confidential
`D 1995 ROY-G-BIV Corporatton. All Rights Reserved.
`
`Page 8 of 18
`
`Page 8 of 18
`
`
`
`XMC Motlon Control XMCAFI Reference
`
`4.0 XMC Motion Control Component
`
`4.0 XMC Motion Control Component
`The Motion Control Component, which implements the majority of the XMCAPI set of functions.
`is used by applications. As a complete set. the OLE interfaces in the XMCAPI are separated into
`the four catagories below.
`
`1. Standard — Standard OLE interfaces.
`2. Motion Control - Custom OLE interfaces used for motion control and code generation.
`3. Code Generation - Custom OLE interfaces used for code generation only.
`4. Diagnostic — Custom OLE interfaces used for debugging the system.
`
`ow the standard OLE 2.0 COM Object software model. The following
`XMCAPI interfaces foll
`I set of functions implemented by theMotion Control
`OLE 2.0 interfaces make up the XMCAP
`Component:
`
`
`
`g
`”
`
`
`
`
`
`'
`
`_
`
`’
`
`Standard
`IClassFactory
`IDacaObjec:
`Ibispacch
`IEnumX
`Iunknown
`
`Motion Control
`IXMC_Coun:er
`IXMC_Display
`IXMC_Dynam1cState
`IXMC_Encoder
`IXMC_EnumIncerface
`IXMC_IO
`IXMC_Joystick
`IXMC_Limits
`IXMC_Motion
`IXMC_StaticSta:e
`IxMC_Timer
`
`:4
`
`Code Generation
`IXMC_Operato:
`IXMC_P:ogram
`‘IxMC_P:ogramFlow
`IXMC_P:oqramMgm:
`IXMC_Subroutine
`IXMC_Variable
`
`Diagnostic
`IXMC_E::or
`IXMC_Debuq
`
`-
`
`.
`
`*
`
`
`
`
`
`
`
`4.1 Standard OLE Interfaces
`rted by the Motion Control Component. For
`The following standard OLE interfaces are suppo
`dard OLE Interfaces.
`more information on each interface. see section 6.0 Stan
`
`Zclassfactory‘
`IDacaObjec:
`IDxspaccn
`Ifinumx
`IUnknown
`
`4.
`
`RDY—G-EIV Corporatlon Confidential
`O 1995 ROY—G-BIV Corporation. All Rights Reserved.
`
`M1995
`
`Page 9 of 18
`
`Page 9 of 18
`
`
`
`
`
`
`
`
`
`XMC Motion Control XMCAPI Rnhnnco
`
`4.0 XMC Motion Control Component
`
`V4.2 Custom OLE Interfaces - Motion Control
`The general set of interfaces is made up from all main motion control interfaces. Most interfaces
`resemble objects found within the motion control system.
`
`4.2.1 IXMC_Counter Interface
`The IXMC__Counter interface allows the programmer to manipulate a hardware counter.
`
`Aefions
`('pCounee:)—>Advise()
`('pCount:e:) -->At:eachEncode: ()
`('pCouneer) ->DecachEncoder (l
`('pCouneer) ~>Enable ()
`('pCouncez:) ->Reset (l
`('pCoum:e:) -—>UnAdvi.se H
`
`Querying Attributes
`('pCounter)->GetCount(l
`
`.
`-
`4.2.2 IXMC_DynamicState Interface
`The IXMC_DynamieState interface manages high level system tasks, such as initialization. and
`allows the user to get all state information describing the motion control system. When queried,
`other interfaces use an internal pointer to the IXMC__Dyn'amicState interface to retn’eve state
`values, which are returned to the caller. The following methods make up the
`IXMC__DynamicState interface:
`
`‘
`
`'
`
`Configuration
`('pDynSt)~>InitializeEx()
`(‘pDynSt)->Intialize(l
`('pDynst'.) -->Reser. ()
`('pDynSt)->ShutDown()
`
`‘
`
`Querying Attributes
`('pDynSt)->AreflardwareLimiesOn()
`('pDynS:)->AresoftwareLimi:sOn()
`('pDynSt)—>GetAcceleracion()
`(‘pDynSc)~>GetAceualPosie1on()
`('pDynSt)->GetAetualVe1oci:y()
`l'pDynSt)~>GecCommandedPosition()
`('pDynSt)->GetComandedVeloci:y()
`('pDynS:)~>GecCoun:()
`('pDynSt)—>GetDeceleraeion()
`('pDynSt)—>GecErrorseatus(l
`('pDynS:)—>GecHomePosi:ion()
`('pDynS:)—>Get£ncoderResolu:ion()
`('pDynSc)->GeeJogVe1oc1tyHigh()
`('pDynSt)—>GetJoqveloc;:yLow()
`('pDynSt)—>Ge:JoystickVelocicyHighll
`('pDynSc)->Ge:JoystickVeloci:yLow()
`('pDynSt)—>GecJoystickAccele:ation(l
`('pDynsc)->GecJoyscickDecelerataonl)
`('pDynSc)->GecLimitDecelera:;on()
`('pDynSt)->GecSoftwareL;mi:Pos1:;onsll
`('pDynStl->GecMapModel)
`('pDynS:)->GetPosi:ion(l
`(’pDynSt)—>Ge:TimerTick()
`('pDynSc)~>GeeUnics()
`('pDynS:)->GetVelocity()
`l'pDynSt)->GeeZeroPosi:ion()
`('pDynS:)->IsCounterOn(l
`l'pDynSt)->IsInMo:;on()
`('pDynS:)—>IsIncerpola:1onOn()
`
`_
`
`Q
`
`ROY-G-BIV Corporauon Confidential
`'3 1995 ROY—G—BlV Coroorauon. All Rights Reserved.
`
`M1595
`
`Page 10 of 18
`
`
`
`
`
`
`
`Page 10 of 18
`
`
`
`XHC Motion Control X!-lCAPl Reference
`
`4.0 XMC Motion Control Component
`
`PPDYRSE) ->IsJoyst;::kOn H
`('PDYnSt) ->I3MotionOn ll
`l'pDynSt) ->IsPosizzonlizrorcorreccionon H
`('pDynSt) ->Is'I‘imerC>n ()
`.
`l'PDynSt) ->IsIOOucput:On H
`<‘pDynStl ->IsIOInpu:On (
`)’
`
`Setting Attribute:
`('pDyn$!'.) ->ClearE.::ors ll
`
`Actions
`('pDynst) ->GetCS H
`('pDynSt) ->Relea5eCS ll
`
`4.2.3 IXMC__Encoder Interface
`The IXMC__Encoder interface is used when working with encoder hardware. Once initialized. a
`pointer to an IXMC___Encoder interface may be attached to an IXMC__Motion interface which
`allows them to work together. Once attached. the 1XMC__Motion interface uses the
`[XMC__Encoder interface position related functions, like setting the home position or querying
`the current position.
`~
`v
`
`.
`
`'-
`
`V
`Querying Attributes
`('pEnc:odex) ->Get:I-Jrrorstatcus U
`('pE‘.ncode:) ->Get:HomePosit:ion ()
`('PEncoder) ->GetPosit:ion ( )'
`('pEncoder) —>GetzeroPosiciori ()
`(‘pi-Zncocler) ->GetResolut:ion (J
`
`Setting Attributes
`('P5nCOderl ->Set:HomePosition ()
`('pEncoder) ->Set:HotnePositionEx ()
`("pEncoder) ->Set:Zer:oPosit:'.on ()
`('pEncoder) ->Set:ZeroPosit:ionI-Ix ()
`(‘pl-Encoder) ->Set:Resolut:ion ()
`
`4.2.4 IXMC__EnumIntet'face._Interface
`11:: IXMC_l-Jnumlnterface interface is used to access the list of the XMCAPI interface names
`and a description of their implementations. For example. if the motion control hardware or
`software drivertuntrolling the hardwaredo not support code generation, all code generation
`interfaces in the enumeration would be listed as “NOT IMPLEMENTED“. Knowing what
`interfaces are and are not supported allow particular programs to decide what drivers are actually
`'
`’
`'
`'
`rface inherits fiom the standard IEnumX OLE
`
`
`
`
`
`
`
`
`
`
`
`
`
`lnharitance
`Iiinumx
`
`l l
`
`--- IXMC__x'-Znumlnte rface
`
`<u.
`
`ROY-G-BIV Corporation Confidential
`O 1995 ROY-G-BIV Corporation. Ail Rights Reserved.
`
`3/15195
`
`Page 11 of 18
`
`Page 11 of 18
`
`
`
`
`
`
`
`
`
`
`
`‘
`
`XMC Motion Control XMCAPI Rtfumnca
`
`4.0 XMC Mouon Control Component
`
`4.2.5 IX.MC___IO Interface
`
`ns to manipulate both digital and analog l/O support located on
`This interface is used by applicatio
`llowingmethods are available from the Motion Component
`the motion control hardware. The fo
`in the IXMC__IO interface:
`
`Configuration
`('pIO) ->Init:ia1i:e ll
`('pIO) ->InJ‘.:iaJ.:'.zeEx ll
`
`Querying Attnibutos
`('pIO) ~>Get:E2rro:Stat:us ll
`('pIO)->I.sIm:put.E.nab1ed()
`(’pIO) —>IsOu'.:put:Enablecl ll
`
`‘
`Acfions
`('pIO)->Advise()
`('pIO)~>AtnachMoeion()
`('pIO)—>DetachMotion()
`('pIO)->Enab1eInpun()
`('pIO)—>EnableOu:pu:()
`('pIO)—>Read()
`('pIO) ->Un.Advise ()
`('pIO) ->w::it:e()
`
`'-
`
`'
`
`'
`
`‘
`
`‘
`
`4.2.6 IXMC__Joystick Interface
`The IXMC__Joystick interface is used to manipulate a hardware joystick. When the joystick is
`‘ enabled, all instances ofthe IXMC_Motion interface will be disabled.
`
`‘
`
`p
`
`"
`
`Querying Attributes
`(‘pJS) ->Get'.Acc:elerat:ion ()
`("pJS) ~>Get:Dece1ex:at:ion ()
`l "pJS) ->Get:Errorstat:us ( l
`('pJs) ->GetVelocit:yH.i.gh H
`('pJs) ->Geeve1oc:;.tyLow ()
`l'pJS) ->IsEnab1e_d ll
`
`Setting Attributes
`—( 'pJS) -->Set:Accele2:at:ion ()
`('pJS) -->Set:Decelez:a:ion ()
`('pJS) ~>set;Ve1ocityH.'tgh H
`('pJS) ->Set:Velocit:yLow ()
`('pJS) ->SetZero()
`
`Actions
`»('pJS) —>Att:achAnalogIO H
`('_oJS) ->Att:achLimit5 ()
`('pJS) —>DetachAna1ogIOl)
`('pJS) ->DecachLimi.cs (l
`('pJS) ->l-Znablell
`
`4.2.7 IXMC_Litnits Interface
`d to set software limit positions. The [XMC__Limits.
`.
`The IXMC_Limits interface is use
`ftware limits.
`lXMC_Joystick} and lXMC_Motion interfaces work together to implement the so
`
`Querying Attributes
`)
`l 'S’Li.m) ->Get;E::rorSt:at:us l
`l'pL.Lm) ->Get.Lim1.tPos1:1ons l)
`('pL:.m) ->Get;Decele:ai::.on l
`)
`('pL1ml —>A:eSoftwa:eLJ.m:.t:sOn l)
`
`-o.
`
`ROY-G-BIV Corporation Confidential
`D 1995 ROY-G-BIV Corporation. All Rights Rnsurvad,
`
`3115195
`
`Page 12 of 18
`
`Page 12 of 18
`
`
`
`XMC Motion Control XMCAPI Raterlnco
`
`4.0 AMC Motion Control Component
`
`('pLim)->A:eHa:dwa:eL;m1:sOn()
`
`Setting Attributes
`('pLim)->SetLimitPosi:ions()
`('pLim)->Se:Decelera:ion()
`
`Acflons
`('pLim)->EnableSoftwareL1mi:s()
`('pLim)->EnableHardwa:eL1mits()
`
`4.2.8 IXMC__Motion Interface
`movement operations. Most functions are passed
`The IXVMC__Motion interface is used to perform
`an array of AX1S_DATA specifying the appropriate axis data.
`
`Configuration
`('pMotion) ->Init:ia1ize()
`('pMoeion)->Tune()
`('pMotion)->TuneEx()
`
`‘
`Querying Attributes
`('pMotion)—>GetAcce1e:acion()
`("pMot-.ion) ->Get:Dece.Ler:a:ion ()
`("pMot:ion) ->Get:E.::rorst:at:us ()
`(*pMot:ion) ->GetVelocity ()
`("pMotion) —>Get:Position () .
`("pMotion) ->Get:Unit:s H
`('pMotion) -->IsMoe:'.onon ()
`('pMotion)—>IsInterpola:ionOn()
`
`Setting Attributes
`('pMotion)~>AttachEncoder()
`('pMo:ion)->A::achLimits()
`('pMotion)—>De:achEncoder()
`('pMotion)->De:achLimics()
`('pMotion)—>setA:celeraeion()
`('pMotion)—>SecDeceleration()
`('pMot-.ion) ->setPosit:ion ()
`('pMo::Lon) ->$e:vé-locitzy ()
`('pMotion)->seeJogVelocityHigh()
`('pMotion)->Se:JogVelocityLow()
`
`“
`
`-
`
`.
`
`.
`
`,
`
`‘
`
`
`
`
`
`
`
`Acfions
`('pMotion)->Advise()
`('pMo:ion)->CreaeePa:h()
`('pMotion)->EnableInee:po1acion()
`('pMo:ion)->EnableMotion()
`:Cor:ection()
`('pMo:ion)—>EnablePosicionE::o
`('pMo:ion)—>GoHome()
`('pMo:1on)—>Goze:o()
`('pMotion)->Joq()
`('pMoc1on)->Kill()
`('pMotion)->MoveAbs()
`('pMOCicn)->MoveContinous()
`('pMo:ion)->MoveRes()
`('pMotion)->S:op()
`('pMoc;on)r>TraceA:c()
`('pMo:1onJ->T:acePath()
`('pMot1on)->UnAdv1se()
`
`ROY-G-8iV Corporation Confidential
`O 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`3115195
`
`Page 13 of 18
`
`
`
`
`
`‘
`
`<.
`
`Page 13 of 18
`
`
`
`
`
`
`
`
`
`
`XHC Motion Control XMCAPI Reference
`
`4.0 XMC Motion Control Component
`
`4.2.9 IXMC_StaticState Interface
`The IXMC__StaticStnte interface manages all static data in the motion control system, such as
`scaling factors. maximum velocities and maximum accelerations. The following methods make
`up the IXMC__StaticStste interface:
`
`Configuration
`('pSt:atSt) ->Init:iali:eE.x (
`( 'pstacSt) —>Im::La.l.i:e ( l
`
`l
`
`Querying Attributes
`('pSt:acS:) —>GecAxi.sScaling (l
`('pScat.S:l —>GeeMaxAcceleracion ( l
`("pStatSt:l ->Get:MaxDe<:eleracion ( l
`("pStatStl ->Get:MaxVe.l.oci:y H
`('pSt:atSt) ->Get:Path5calinq ll
`('pStat'.St) ->Get:Oper:a'c:'.nqMode (
`
`l
`
`Setting Attributes
`(*pStatSt)~>SetAxisScaling()
`('pscat:stl -~>secMaxAceeleracion ()
`('pSt:at:Stl->Set:t-taxDecele::ation(l
`('pSt:at:St:) —>Set:MaxVeloci:y ( l
`('pStac.St) —>set:Pat:nSca.l.ing (l
`('pSeacSt:l -->set:OperatingMocie ()
`
`’
`
`~
`
`Actions
`('pStat:St:) ->Commit;St:at:e (l
`('pStat:St'.)~>EnableScalingEac1:or:s ()
`('pStatSt) ~>Get:State ()
`("pStat:St) ->Re1easestate ()
`
`‘-
`
`4.2.10 IXMC__Titner Interface
`The IXMC__Timer interface allows the programmer to manipulate a hardware timer.
`
`g
`Querying Attributes
`('pTime::l -->GetDe_lay ()
`('p'1‘imerl ->Get:E:rorStar_us ll
`('pTimerl ->Get:Elapsed'I‘ime ll
`l'pTimerl ->GetReso1.ut:ion ll
`('p'I‘imer) ->IsInDe.Lay(,)
`
`Setting Attributes
`('pTimerl ->Set:De.l.ay ()
`
`Actions
`-('pTimer:) ->1-xdvise ll
`('pTime:)->DoDelay(l
`('pT1mer)~>Enablel)
`('pTimer)->Rese:()
`l'pTimer)—>Star:ll
`l'pTimerl—>Scop(l
`('pTimerl->UnAdvise(l
`
`4.3 Custom OLE Interfaces - Code Generation
`y either run in either real-time or generating code
`Unlike the set of general interfaces. that ma
`d when generating code. When used in
`modes. the code generation interfaces are only use
`n control programs may be generated.
`conjunction with other general interfaces. complete menu
`This section discusses each ofthe code generation interfaces.
`
`-o.
`
`ROY-G-BIV Corporation Confidential
`O 1995 ROY—G—8lV Corporatlon. All Rights Reserved.
`
`3/15195
`
`Page 14 of 18
`
`
`
`
`
`
`Page 14 of 18
`
`
`
`
`
`XMC Motion Control XMCAPI Reference
`
`4.0 mac Motion Corrtrol Component
`
`4.3.1 IXMC__Operator Interface
`gram statement genemting functions
`The IXMC__Operator interface contains general pro
`matical operations. logical operations, and gcncml conditional
`including bitwise operations. mathe
`the [XMC__Operator interface:
`operations. The following functions are in
`
`Constant:
`CE__PI
`
`Eltwise
`('pOper)->BitAndl)
`('pOper)->BitNot()
`('pOper)->BitOrl)
`('pOperl->BitShiftL()
`('poper)—>BieshiftR()
`('pOperl->BitXOr(l
`
`Logical
`('pOper)->And()
`("pOper) ->Noc ()
`(‘pOper) ->0: ll
`
`Mathematical
`('pOper)->Addll
`('pOper)->Bitl)
`('pOper)->Div()
`('p0pe:)~>LeftParen()
`('pOper)->Multll
`('pOper)->RightParen()
`(‘pOpe:)->Sqrt()
`('pOper)—>Sub()
`
`Trigonometric
`('pOperl ->ACos ()
`('pOper) ->Asin ()
`('pOper)'>ATan()
`('P0Per)->cosl)
`,
`('pOpe:)->Sin()
`('p0p'er) —>'t‘an H '
`
`Labelslstringslcommants
`~+'pOper) ->ASCIIChar ()
`('pOper)—>Commen:ll
`('p0per)—>DeclLabe1()
`('pOper)->String()
`
`_ Condmonfl
`('pOper)->Equal()
`‘('pOper)->Grea:erThan()
`l'pOper)->Greace:Than£qualll
`('pOper)->Le:sThan()
`('pOperl->LessThanEqualll
`('pOper)->Noc£qual()
`
`
`
`
`
`Interface
`4.3.2 IXMC__Program
`_
`terface is used to generate the general program shell. Several other
`leep for a specified amount oftime are also
`causing the program to s
`thods make up the interface:
`
`The IXMC_Program in
`program flow functions like
`included. The following me
`
`-o.
`
`Program Flow
`('pProq)—>C
`l'pProq)->D
`('pP:oq)—>D
`
`ombinell
`efinefl
`ownloadll
`
`ROY-G-81V Corporation Confidential
`D 1995 ROY—G-BIV Corporation. All Rights Reserved.
`
`‘
`
`N1&95
`
`Page 15 of 18
`
`Page 15 of 18
`
`
`
`XMC Motion Control XMCAPI Reference
`
`4.0 XMC Motion Control Component
`
`('pP:oq)->End()
`('pProq)->Exit(l
`( 'pProq) ->Rende::AsTex: ( l
`('pP:og) ->Run()
`,
`('pProg) ->Sleep ll
`('pProq)->St'.op(l
`
`4.3.3 IXMC__ProgramFlow Interface
`The lXMC_ProgramFlow interface is used to generate code used to control the flow ofa
`program. Methods are available to generate if-else and general looping statemems. The following.
`methods are in the lXMC__ProgramFlow interface:
`
`
`
`
`
`
`
`
`
`lfIElse
`("pProgF1ow) ->IfOpen ()
`('pProgFlou) ->IfClose ()
`('pP:'ogFlow) ->Else ll
`('pProgFlow) —>E.ndIf()
`
`While
`('pProgE‘low)—>whi1eOpen()
`("pP:ogFlow) ->whileClose ll
`('pPz:ogElow) ->EndWhile ()
`
`Repeat
`('pP:ogE‘low) ->Repeat ()
`('pPx:ogFlow) —>Unti10pen ()
`('pP::oql:‘low) ->Un:ilCJ.osé l )
`
`"
`
`Loops
`(’pProgFlow) ->Loop ()
`(‘pProgFlow) —>EndLoop ()
`
`Misc.
`('PProgl:‘low) ——>Break ()
`('pProgE‘low) —>GoTo ()
`
`4.3.4 IXMC_ProgramMgmfInterface
`en working with programs on a high level.
`The IXMC_PrograrnMgmt interface is used wh
`5 included in this interface. The following
`Running and saving programs are a few operation
`methods make up the interface:
`'
`-
`
`‘
`
`Program Management
`l'pProgMgmt) ->DownJ.oad ()
`('pProgMgmt) —>Up.l.oad ()
`('pP::oqMg'mt) ->set:Ouepu: ()
`‘l 'pProgMg‘mt) ->openOutpu: ()
`)
`l 'pP::ogMqmt) —>CloseOuepuc (
`('pP:ogMgm\:) -->E'lusnou:puc ()
`
`
`
`
`
`
`
`--.
`
`ROY-G—8lV Corporation Confidential
`O 1995 ROY—G-BIV Corporation. All Rights Reserved.
`
`3115195
`
`Page 16 of 18
`
`Page 16 of 18
`
`
`
`
`
`
`
`
`
`XMC Motion Control XHCAPI Reference
`
`4.0 mac Motion Control Component
`
`4.3.5 IXMC_Subroutine Interface
`The [XMC__Subroutine interface is, used to generate and subroutines and calls to subroutines
`generated. The following methods are in the_lXMC_Subroutine interface:
`
`General
`('pSub) -->Define ()
`("pSubl ->End ii
`('pSub) ->caJ.l ll
`
`4.3.6 IXMC__Variable Interface
`The IXMC__Variable interface is used to define and assign values to variables. The following
`methods are included in the interface:
`A
`
`Definition
`- ('pVar) ->Define ()
`
`Assignment
`('pvaz:) ->AssignNumeric ()
`("’PV-_31.‘)->AssignBinary()
`("pvar) ->Assignst:ring ()
`
`‘
`
`‘
`
`s
`
`__
`
`-
`
`4.4 Custom OLE Interfaces - Diagnostic .
`Diagnostic interfaces maybe used by the application developer when debugging the system. The
`methods in the interface provide the user with logs of information generated when running the
`XMC software model. Logs may be created for XMCAPI calls. and.all information flowing in
`" and out of specified ports.
`_
`
`.
`
`..
`-
`=
`-
`4.4.1 IXMC_En'or Interface
`The DCMC__Error interface is provided to give the application developer a consistant method of
`displaying and logging all XMC errors based on the I-{RESULT value retumed by functions that
`fail. The following methods are in the interface:
`
`Setting Attributes
`('pErro:) ->Set:0ucput ()
`
`Actions
`('pError) ->Disp1.ay ()
`(*pError) ->Log ()
`("pError) —>StringE‘::omHRESUI..T ()
`
`4.4.2 IXMC__Debug Interface
`The IXMC__Debug interface gives the application developer control over severa
`may be generated to help debug an application using the XMC software model.
`methods are in the interface:
`
`i log files that
`The following
`
`Setting Attributes
`i 'pDebug) ->Set:xMCAPILogE‘ile l )
`l'pDeoug) ->Set:xMCAPIStream()
`
`Actions
`('PDebug) ->EnVableX.MCAPII.ogginq ll
`i'PDebuq) ->Enabi.eDiagnos:‘.cs U
`
`¢
`
`ROY-G-BIV Corporation Confidential
`O 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`311 5195
`
`Page 17 of 18
`
`
`
`
`
`
`
`
`
`Page 17 of 18
`
`
`
`Motion Control Componnnt Spoclfleatlon
`
`Appendix A
`
`Appendix A
`
`A.1 Reviewer Feedback
`All feedback is important in order to evolve the specification into a standard software model for
`motion control hardware. Please, at a minimum. respond to the following issues:
`
`Which areas, ideas, or concepts within the specification seem confusing to you’?
`Do you see any unresolved issues. other than those listed above?
`Are there any main features missing from the specification that you would find useful?
`4. Are there any specific scenario-maps you would like to see in the next revision?
`5. Are there any specific C or C++ code examples you would like to see?
`6. Are there any_speeific Visual Basic code examples you would like to see?
`
`A.1.1 Correspondence
`If possible, please send all feedback over email to. the following address:
`
`~
`
`Dave Brown
`
`ROY-G-BIV Corporation
`Comptisen/e:72103,2235
`Internet:
`72103.2235@compuserve.com
`
`Otherwise, ifyou do not have access to email,'please mail all correspondence to the following
`address:
`
`Dave Brown
`
`_ ROY-G-BIV Corporation
`PO. Box 1278
`White Salmon, WA. 98672
`
`
`
`
`
`
`
`
`«o.
`
`_________._____________________________.________i____._.._._____
`3115195
`ROY-G-BIV Corpontlon Confidential
`0 1995 ROY-G-BIV Corporation. All Right: Reserved.
`
`Page 18 of 18
`
`
`
`
`
`Blifiliti'
`
`
`
`
`
`
`Page 18 of 18
`
`