`
`EXHIBIT 1003
`
`Page 1 of 18
`Page 1 of 18’
`
`35»
`
`EXHIBIT B
`
`HILL“322-23?3339ii“ill-3i};iimii33...?5
`
`
`
`
`
`
`<1!"-1L.i!'-lin.il1!"(5222}:ii"
`
`uh”m“"“1“
`r’puurn““x
`
`m n
`
`nlx‘
`
`I’m"nun]“In“
`
`"ummm
`
`
`
`EXHIBIT B
`
`XMC Motion Control
`
`
`
`
`"
`
`!
`
`Roviclon:
`Author:
`Data:
`Description:
`
`Third Draft
`Dave Brown
`Wednesday. Feb 22. 1995
`This document is the XMCAPI reference descnbing all lunctions. standard OLE interfaces. and
`custom OLE interfaces makmg up the XMCAPI.
`
`Revision History: 4/15/94108)
`7/1/94 (08)
`2122195 (08)
`
`Initial wmmg.
`. First Draft:
`- Second Draft: Split design all small business plan. incorporated suggestions.
`- Third Draft - Solxt XMCAPI reference all design guide.
`
`ROY-G-BIV Corporation Confidential
`© 1995 ROYoG-Blv Corporatron. All rights reserved.
`
`Page 2 of 18
`Page 2 of 18
`
`
`
`t
`
`XMC Motion Control XMCAPI Reference
`
`It may be changed substantially prior to final commercial release.
`This 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 sofiware. The entire
`risk of using this document or software including the results of its use. remains with the user. No part of this document
`may be reproduced Without express written perrmssion from ROY-G-BIV Corporation. _
`
`ROY-G-BI'V. XMC. XMCAPL and XMCSPI are trademarks of ROY-G-Blv Corporation:
`
`Microsoft. Visual CW. Visual Basic. WINJZ. and Microsoft Excel 5.0 are registered trademarks and Windows.
`Windows NT. MFC. WINJZI. and OLE are trademarks of Microsoft Corporation.
`
`Borland and Borlaad CH are trademarks ofBorland lntemational. Inc.
`
`0 I995 ROY-G-BIV Corporation. All Rights Reserved.
`Printed in the United States of America.
`
`
`
`————__—_—————_-——-————
`311995
`ROY-G-alv Corporatlon Confldcntlal
`O 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`Page 3 of 18
`Page 3 0f 18
`
`
`
`XMC Motion Control XMCAII Reference
`
`
`
`.
`
`I
`
`Table ofConant:
`
`Table of Contents
`
`TABLE OF CONTENTS .............................................................................................................................. i
`
`LO OVERVIEW
`
`.............................................................................................. l
`
`2.0 STANDARD OLE INTERFACES .........................................................................................................2
`
`2.1 ICLASSFACI'ORY INTERFACE ..................................................................................................................... 3-
`
`2.2 IDISFATCH INTERFACE ...............................................................................................................................2
`2.3 IENUMX INTERFACE ..................................................................................................................................2
`2.4 IUNKNOWN INTERFACE ..............................................................................................................................2
`
`3.0 XMC DRIVER ADMINISTRATOR .....................................................................................................3
`
`3.1 STANDARD OLE INTERFACES ....................................................................................................................3
`3.2 CUSTOM OLE INTERFACES
`.........................................................3
`
`3.2.] IXMC_Drt‘verAdmin ........................................................................................................................... 3
`3.2.1 lXMC_EnumDrI‘ver ............................................................................................................................ 4
`
`4.0 XMC MOTION CONTROL COMPONENT .......................................................................................5
`
`4.1 STANDARD OLE INTERFACES ....................................................................................................................5
`4.2 CUSTOM OLE INTERFACES - MOTION CONTROL ....................................................................................... 6
`
`4.2. I lXMC_Caunter Interface .................................................................................................................... 6
`4.2.2 lXMC_DynamicState Interface........................................................................................................... 6
`4.2.3 IXMC_Encoder Interface ................................................................................................................... 7
`4.2.4 LYMC_EnumInter/ace Interface .................... 7
`4.2.5 IXMC_IO Interface............................................................................................................................. 8
`4.2. 6 IXMC_Joystic/c Interface ............................................................................................................,‘....... 8
`4:2. 7 WC_Lirnits Interface ....................................................................................................................... 8
`4.2.8 WC_Motian Interface ..................................................................................................................... 9
`4. 2. 9 WC_StaticState Interface .............................................................................................................. 10
`4.2.10 IXMC_Timer Inteo’ace...................‘:................................................................................................ [0
`4.3 CUSTOM OLE INTERFACES - CODE GENERA‘HON .................................................................................... 10
`4. 3. I lXMC_0pera_tor Interface ................................................................................................................ I I
`4. 3.2 IXMC_Program Interface................................................................................................................. I I
`4.3.3 IXMC_ProgramF/ow Interface ..................'...................................................................................... I2
`4. 3. 4 IXMC_ProgramMng Interface ....................................................................................................... I 2
`4.3.5 IXMC_Subroutine Interface .................................................................................................'............ 13
`4.3.6 [XMC__Vart'able Interface ................................................................................................................. I3
`' 4.4 CUSTOM OLE INTERFACES - DIAGNOSTIC ............................................................................................... I3
`4. 4.] IXMC_Error Interface ...................................................................................................................... I 3
`4. 4.2 IXMC_Debug Interface ....................................................................................., .............................. I3
`
`APPENDIX A .............................................................................................................................................. 14
`
`A.I REVIEWER FEEDBACK ............................................................................................................................. I4
`
`A. 1.] Correspondence ............................................................................................................................... I 4
`
`.
`
`32.2
`
`
`
`m;
`
`.
`
`
`ROY-G-BIV Corporation Gonna-nail
`3115/95
`d: 1995 ROY-G-BIV Corporation. All Right: Reserved.
`
`Page 4 of 18
`Page 4 of 18
`
`
`
`.
`t
`-
`w ‘
`XMC Motion Control XMC’mnnco
`
`‘t
`
`‘
`
`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 of OLE interfaces
`corresponding with common objects found in a motion control system. For‘example. a motion
`control system may contain servo and Stepper mozors. encoders, limit switches. and a joyStick.
`Within the XMCAPI are interfaces corresponding to each of these objects. The full XMCAPI
`contains implementations of both standard OLE 2.0 interfaces and a rich set of custom 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 catagory.
`
`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
`itnplements and exposes the majority of the XMCAPI. Together, the Motion Control Component
`and the Driver Administrator implement and expose the full set of interfaces defined by the
`XMCAPI.
`
`
`
`
`ROY-G-alv Corporation Confidential
`3115/95
`0 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`Page 5 of 18
`Page 5 0f 18
`
`
`
`‘
`
` .i
`
`":1
`Fr.L‘
`
`
`
`ii"
`
`ii"82322
`
`
`
`xuc Motion Control Xllcgahnnce
`
`
`
`.10 Standard OLE Interfaces
`
`2.0 Standard OLE lnterfaces
`
`Several standard OLE interfaces must be supported when following the OLE software model.
`Both the [Unknown and lClassFactory interfaces are examples of required interfaces The
`[DataObject interface[5 used when transferring or caching data. The [Dispatch is provided to
`support OLE Automation between proccsScS. This senior. describe; all sumdard OLE interfaces
`used by the Driver Administrator. Motion Control Component. and Motion Control Drivers.
`
`2. 1 ICIassFactory Interface
`
`The [ClassFactory interface is used to create an insrance of an object and retum to the caller a
`pointer to an interface.
`'
`
`General
`('pCF) ->CreaceInstance ()
`('pCF) ->LockServer()
`
`2.2 [Dispatch Interface
`The [Dispatch interface is used to support OLE Automation. Normally, this interface is used by
`the OLE Automation engine, not the C/CH- application developer.
`
`General
`('pDisp) ->GetIDsOfNames ()
`('pDisp) ->GetTypeInfo (l
`(‘pDisp) ->Get'rypeInfoCounc ()
`('pDisp) —>Invoke ()
`
`2.3 lEnumX Interface
`
`The IEnumX interface is a generic OLE interface that other enumeration interfaces always inherit
`from. This interface is used to create and move through an enumeration of data. The
`IXMC_EnumInterface interface inherits from IEnutnX to implement the interface support
`querying functionality.
`
`General
`('pExtum) ->Next:()
`('pEnum) ->Skip ()
`('pEnum)->Reset(l
`' ('pEnum) ->Clone()
`
`2.4 [Unknown Interface
`The [Unknown interface is a standard OLE interface exposed by all OLE objecs.
`common base interface.
`
`[n a way it is a
`
`General
`('pUnk) ->QueryInce:face (l
`('pUnk) ->AddRef()
`('pUnk) ->Release()
`
`
`ROY-G-BIV Corporation Confidential
`'
`3/15/95
`0 1995 ROY-G-BIV Corporation. All Right: Reserved.
`
`Page 6 of 18
`Page 6 0f 18
`
`
`
`XMC Motion Control XMCAPI Reference "' 3.0 XMC Driver Admlnlatntor
`
`.
`
`.)
`
`x
`
`I
`
`
`
`3.0 XMC Driver Administrator
`
`The Driver Administrator. which implements a small subset ofthe XMCAPl 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 lunar/ans in the XMCAPI.
`
`The following OLE 2.0 interfaces are custom OLE interfaces in the XMCAPI supported by the
`Driver Administrator.
`
`IXMC_D:iverAdmin
`
`3.1 Standard OLE Interfaces
`
`The following standard OLE interfaces are supported by the Driver Adminisrrator. For more
`information on each interface. see seetion 6.0 Standard OLE Interfaces.
`
`‘
`
`IClassFactory
`IDispacch
`IUnknown
`
`3.2 Custom OLE Interfaces
`
`" The following custom interface is a part of the XMCAPI and an extension to the OLE 2.0
`software model.
`
`3.2.1 IXMC_Dn'ver-Adrnin
`
`This interface is used to manipulate and query the Driver Administrator settings. The Driver
`Administrator application, run by the user. manipulates the administrator’s settings. And. the
`Motion Control Component queries the administrator for a pointer to the current driver to use.
`
`Querying Attributes
`('pXMCDrvAdmin)—>GecSelectedD:ivers ()
`('pXMCDrvAdmin) ->IsDiagnos:icTestingOn l)
`('pXMCDrvAdmin) ->IsAPILogg1ngOn ()
`( 'pXMCDrvAdmin) ->IsCmdLoggingOn l )
`('pXMCDrvAdmin)->IsBi:LoggingOn()
`
`-
`
`Setting Attributes
`('pXMCDrvAdmin) ->SetAPIStream()
`('pXMCDrvAdi-nin) ->Ser.C::tdSt:eam ()
`l‘pXMCDrvAdx-nin) ->Seesi:5e:eaml)
`
`Acflons
`('pXMcothdmin)->EnableAPILoggingl)
`l'pXMCDrvAdmin)->EnabieCmdLogg;ng()
`t'pXMCDrvAdmtn)->Enable5;:Logg;ng()
`('pXMcoevAdmin)—>EnableDiagnosc;csll
`{'pXMCDrvAdmzn)~>ViewIncerfaceSuppor:l)
`
`!‘" li“
`El
`ii...il
`
`
`
`‘
`
`——-—_————_—-—_————_——-—_—
`3I1 5/95
`ROY-G-BIV Corporntlon Confidential
`0 1995 ROYaG-Blv Corporation. All Right: Reserved.
`
`.
`
`Page 7 of 18
`Page 7 0f 18
`
`
`
`.
`
`I
`
`
`
`XMC Motion Control XMCAPI Rofonneo 3.0 XMC Driver Admlnletntor
`
`.
`
`.
`
`3.2.1 IXMC_EnutnDriver
`
`The lXMC_EnumD'i-iver interface is used by the XMC Motion Control Component when
`building the interface enumeration describing the level of XMC support provided by each driver.
`This interface inherits from the standard lEnumX OLE interface.
`
`‘
`
`«
`
`
`
`:tc'
`
`5f
`
`3
`
`——————-—————_————————————
`ROY-G-BIV Corporation Confidential
`3’1 5’95
`O 1995 ROY-G-BIV Corporation. All Right: Reserved.
`
`Page 8 of 18
`Page 8 0f 18
`
`
`
`XMC Motion Control XMCAPI Reference
`
`4.0 !!C Motion Control Component
`
`
`
`4.0 XMC Motion Control Component
`
`The Motion Control Component. which implemean the majority ofthe XMCAPl set of functions.
`is used by applications. As a complete set. the OLE interfaces in the XMCAPl are separated into
`the four catagories below.
`
`1. Standard - Standard OLE interfaces.
`" Motion Control - Cu5tom 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.
`
`XMCAPI interfaces follow the standard OLE 2.0 COM Object software model. The following
`OLE 2.0 interfaces make up the XMCAPI set of functions implemented by the Motion Control
`Component:
`
`'
`
`
`
`Standard
`IClassFactory
`IDacaObjec:
`IDispaech
`IEnumX
`IUnknown
`
`Motion Control
`
`IXMC_Counter
`IXMC_Display
`IXMC_DynamicStace
`IXMC_Encoder
`IXMC_EnumInterface
`IXMC_IO
`IXMC_Joystick
`IXMC_Limits
`IXMC_Motion
`IXMC_ScacicScace
`IXMC_Timer
`
`Code Generation
`IXMC_Operator
`IXMC_Program
`'IXMC_ProgramFlow
`IXMC_P:ograqum:
`IXMC_Subroutine
`IXMC_Variable
`
`Diagnostic
`IXMC_E::or
`‘IXMC_Debug
`
`‘
`
`4.1 Standard OLE Interfaces
`
`The following standard OLE interfaces are supported by the Motion Control Component. For
`more information on each interface. see section 6.0 Standard OLE Interfaces.
`
`IClassFactory
`IDacaObjec:
`IDispaccn
`IEnumx
`IUnknown
`
`M3/15/95
`ROY-GoBN Corporation Confidential
`O 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`Page 9 of 18
`Page 9 0f 18
`
`
`
`
`
`XMC Motion Control XMCAPI Reference 4.0 XMC Mouon Control Component
`
`4.2 Custom OLE Interfaces - Motion Control
`
`The general set of interfaces is made up from all main motion conu'ol interfaces. Most interfaces
`resemble objects found within the motion control system.
`
`4.2.1 IXMC_Counter Interface
`
`The lXMC_Counter interface allows the prog'ammer to manipulate a hardware counter.
`
`Acuons
`('pCoun:e:)->Advise()
`('pCountez) ->Aetach£ncoder ()
`('pCouncer)->Decach£ncoder()
`(‘pCounter)->Enable(l
`('pCounter)—>Reset()
`('pCounter) ->UnAdvise ()
`
`Querying Attributes
`('pCounter)->GetCount()
`
`4.2.2 IXMC_DynamicState Interface
`The IXMC_DynamicState interface manages high level system mks, 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_DynamicState interface to retrieve state
`values, which are returned to the caller. The following methods make up the
`lXMC_DynamicState interface:
`
`”
`
`Configuration
`('prnS:)->Initialize£xl)
`('prnSt)->Intialize()
`('prnSt)->Reset()
`('prnSt)->ShutDown()
`
`‘
`
`Querying Attributes
`('prnSt)~>AreHardwareLimitsOnl)
`('prnSt)->AreSoftwareLimi:sOnl)
`('prnSt)->GetAcceleracionl)
`('prnSt)->GetAccualPosition()
`('prnSt)->GetAc:ualVeloci:y()
`l'prnSt)->GetCommandedPosition()
`('prnSt)->GetCommandedVelocity()
`('prnSt)->GetCount()
`('prnSt)->GetDeceleration()
`('prnSt)->Get£rror5tacus()
`('prnSt)->GetHomePosi:ion()
`('prnS:)->Get£ncoderResolueionl)
`t'prnS:)->GetJogVelocicyHigh()
`('prnSt)->GeeJogVeloc;cyLowl)
`l'prnSt)->Ge:JoystickVelocityHigh()
`('prnSt)->Ge:JoystickVeloci:yLowl)
`('prnSt)->GecJoystickAccele:ationl)
`('prnS:)—>GetJoystickDecelera:Lonl)
`('prnS:)->GetLimitDeceleraczont)
`('prnSt)->GetSofcwareL;mi:Posi:ions(l
`t'prnSt)-)GeeMapMode()
`('prnS:)->Ge:Posi:ionl)
`l'prnS:)->Ge:TimerTickl)
`('prnSt)->GetUnits()
`('prnS:)->GecVelocityl)
`l'prnSt)->GetZeroPosi:ionl)
`l'prns:)->IsCoun:erOn()
`('prnSEl->I5Innotzont)
`l'prnSt)->IsInterpolatLonOnl)
`
`’
`
`
`
`ROY-G-BIV Corporation Confluenual
`'9 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`3/15/95
`
`Page 10 of 18
`Page 10 0f 18
`
`
`
`
`
`.
`
`
`
`l
`
`|
`
`\
`
`.
`
`.
`
`\
`
`
`
`XMC Motion Control XMCAPI Reference 4.0 XMC Motion Control Component
`
`('prnSt) ->IsJoyscickOn ()
`('prnSt) ->IsMocion0n ()
`('prnSt) ->IsPosi:zonE::orCo:rectionOn ()
`('prnSt) ->I5Timer0n()
`('prnSt)->IsIOOu:putOn()
`('prnSE) ->IsIOInpucOn()
`
`Setting Attributes
`('prnS:) ->Clear£r:ors ()
`
`Actions
`('prrtSt) ->GetCS ()
`('pr‘nSt) ->ReleaseCS ()
`
`4.2.3 IXMC__Encoder Interface
`
`The lXMC_Encoder interface is used when working with encoder hardware. Once initialized. a
`pointer to an IXMC_Eneoder interface may be attached to an lXMC_Motion interface which
`allows them to work together. Once attached. the lXMC_Motion interface uses the '
`lXMC_Encoder interface position related functions, like setting the home position or querying
`the current position.
`
`Querying Attributes
`('pEncoder) ->Get£rror5tatus ()
`('pEncoder) ->GecHomePosition ()
`('pEncocler) ->GetPosition ()
`('pEanoder) ->GetZetoPosition ()
`('pEncoder) ->GetResolution ()
`
`_
`
`..
`
`Setting Attributes
`('pEncoder) ->SetHomePosition ()
`(‘pEncoder) ->SetHomePosition£x ()'
`('pEncoder) ->Set2eroPosition ()
`('pEncoder) ->SetZeroPositionl-:x ()
`('pEncoder) ->SetResolution ()
`
`-.
`
`4.2.4 IXMC_EnumInterface,Interface
`
`The IXMC_Enumlnterface 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 driver‘controlling the hardware do 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
`capable of running with the application. This interface inherits from the standard IEnumX OLE
`interface.
`
`Inheritance
`IEnuntx
`
`I l
`
`--- IXMC_EnumIncerface
`
`
`
`.
`
`
`ROY-G-BIV Corporation Confidential
`3/15/95
`0 1995 ROY-G-BIV Corporation. All Right: Reserved.
`
`Page 11 of 18
`Page 1 1 of 18
`
`
`
`.
`
`t
`
`|
`
`I
`
`\
`
`I
`XMC Motion ControlXMCJJI Reference 4.0 XMC Motion Control Component
`
`
`
`4.2.5 IXMC_IO Interface
`
`This interface is used by applications to manipulate both digital and analog [/0 support located on
`the motion control hardware. The following methods are available from the Motion Component
`in the IXMC_IO interface:
`
`Configuration
`('pIO)->Inicialize()
`('pIO) ->Ini.ciali.ze£x ()
`
`Querying Attributes
`('pIO) ->Get£rro:$tatus ()
`('pIO)->IsIncput£nabled(l
`('pIO)->IsOucpucEnabled()
`
`Acfions
`('pIO)->Advise()
`('pIO)->AttachMocion()
`('pIO)->DecachMocion()
`(’pIO)->EnableInput()
`('pIO)->Enable0utpuc(l
`('pIO)->Read()
`('pIO) ->Un.Advise ()
`(‘pIO)->Wrice(l
`
`‘
`
`4.2.6 IXMC_Joystick Interface
`The IXMC_Joystick interface is used to manipulate a hardware joystick. When the joystick is
`enabled, all instances of the IXMC_Motion interface will be disabled.
`
`"
`
`Querying Attributes
`('pJS) —>GetAcce1eration ()
`(’pJS) ->GecDeeeleration ()
`(‘pJSl ->Get£rror$tatus ()
`('pJS) ->GetVelocityHigh ()
`('pJS)->GetVelocgtyLow(l
`('pJS) ->Is£nable.d()
`
`Setting Attributes
`-( 'pJS) ->SecAeceleracion ()
`('pJS) ->SecDeceleration ()
`('pJS) ->SecVelocityHigh (l
`('pJS)->SecVelocicyLow()
`('pJS) ->SetZero ()
`
`Actions
`-('pJS) ~>ActachAnalogIO ()
`('pJS) ->AccachLimics ()
`('pJS) ->DecachAnalogIO t)
`('pJS) ->DecachLimits (i
`('pJS) ->Enable()
`
`4.2.7 IXMC_Limits Interface
`
`The IXMC_Limits interface is used to set software limit positions. The IXMC_Limits,
`IXMC_Joystick'. and IXMC_Motion interfaces work together to implement the software limiLs.
`
`Querying Attributes
`('PLim) ->Gec£:rorscacus ()
`('pLim) ->GecLimatPosi:ions ()
`('pLim) ->GecDeceleracaonl)
`('pLim) —>AreSofcuareLamtcsOn ()
`
`.'
`
`
`
`
`=
`'
`
`'
`
`,
`
`‘
`
`.
`
`‘
`
`. R
`
`OY-G-BIV Corporation Confidential
`O 1995 ROY-G-BIV Corporation. All Right: Reserved.
`
`3/15/95
`
`Page 12 of 18
`Page 12 of 18
`
`
`
`
`
`XMC Motion Control XMCAPI Rotoronco 4.0 XMC Motion Control Componont I
`
`
`
`('pLim)->A:eHa:dwareLimi:sOni)
`
`SemngAnfibums
`('pLim)->SetLimitPosicionsi)
`i'pLim)->Se:Decelera:icn()
`/
`
`Acfions
`('pLim)->EnableSo£cwazeLimitsi)
`('pLim)->EnableHardwa:eLimitsi)
`
`21.2.3 IXMC_Motion Interface
`The IXMC_Motion interface is used to perform movement operations. Most functions are passed
`an may of AXIS_DATA specifying the appropriate axis data.
`
`"
`
`
`
`§m
`
`Configuration
`i'pMotion)->Initialize()
`('pMotion)->Tune()
`('pMotion)->Tune£x()
`
`-
`Querying Attributes
`('pMocion)->GetAccele:a:ion()
`('pMotion)->GetDecelera:ion()
`('pMotion)->Get£rror3tatus()
`('pMotion)->GetVelocity()
`('pMotion)->GetPositioni)
`('pMotion)->GetUnits()
`('pMotion)->IsMotionOni)
`('pMotion)->IsIn:erpola:ionOni)
`
`Setting Attributes
`('pMotion)->AttachEncoder()
`('pMotion)->AttachLimits()
`('pMotion)->Deeach£ncoder()
`('pMotion)->De:aehLimitsi)
`('pMotion)->SetAccelerationi)
`('pMotion)->SetDeceleration()
`('pMotion)->SetPosition()
`('pMotion)->Setvélocity()
`('pMotion)->SetJogVelocityHighi)
`('pMotion)->SetJ0qulocityLow()
`
`Acfions
`('pMonion)->Advise()
`('pMotion)->CreatePach()
`('pMotion)->Enab1eInterpolationi)
`('pMoeion)->EnableMotion()
`('pMotion)->EnablePosicionE::o:Correctioni)
`-('pMo:ion)->GoHome()
`('pMotion)->GoZeroi)
`('pMotion)->Jog()
`('pMotion)->Kill()
`('pMotion)->MoveAbs()
`('pMocion)->MoveContinous()
`('pMotion)->MoveResi)
`('pMocion)->s:op()
`('pMocion)r>T:aceA:ci)
`('pMo:ion)->T:acePathi)
`('pMotion)->UnAdv15e()
`
`‘
`
`M3/1 5/95
`ROY-G-BIV Corporation Confldonu‘al
`O 1995 ROY-G-BIV Corporation. All Rights Reserved.
`
`Page 13 of 18
`Page 13 0f 18
`
`
`
`‘
`
`l
`
`\
`
`.
`
`.
`
`
`
`XMC Motion Control XMCAPI Reference 4.0 XMC Motion Control Component
`
`4.2.9 IXMC_StaticState Interface
`
`file lXMC_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 lXMC_StaticState interface:
`
`Configuration
`('pStatSt) ->Initia1i:eEx(l
`('pSt:atSt) ->Intiali:e ()
`
`Querying Attributes
`('pStacSt) ->GechisScaling ()
`('pStat’.St) ->GecMaxAcceleracion ()
`('pScatSt) ->GecMaxDeceleracion (l
`('pScacSt) ->GecMaxVelocicy ()
`('pSEatSt) ->GetPathScaling l )
`('pScatSt)->Get0pera:1ngMode ()
`
`Setting Attributes
`('pStatSt)->SetAxisScaling()
`('pScatSt) ->SetMaxAccelerar.ion ()
`('pStatSt) ->SetMaxDecelex:ation ()
`('pStatSt)->SetMaxVelocity(l
`('pStatSt) ->SetPathScaling ()
`(‘pStatSU ->Sec0peratingMocie ()
`
`Acfions
`( 'pStatSt) ->Commit3t:at:e ( l
`('pStatSt) ->Enable5caling£‘actors (l
`('pStatSt)->Get$tate(l
`('pStatSt)->ReleaseState(l
`
`‘
`
`4.2.10 IXMC__Timer Interface
`
`..
`
`The IXMC_Timer interface allows the programmer to manipulate a hardware timer.
`
`.
`Querying Attributes
`('pTimer) ->GetDe_lay ()
`('pTimer) ->Get£rror5ta:us ( l
`('p'rimer) ->Get£1apsedTime ()
`__(_'p'rirner) ->GetResolucion ()
`('pTimer) ->IsInDelay()
`
`Setting Attributes
`('p'rimer) ->SetDelay ()
`
`Acflons
`.('pTimerl->Advise()
`('pTimer)->DoDelay()
`('pTimerl->Enable()
`('pTimez)->Rese:()
`('pTimer)->Scaet(l
`('pTimer)->scop()
`('pTimer)->UnAdvise()
`
`4.3 Custom OLE Interfaces - Code Generation
`
`Unlike the set of general interfaces. that may either run in either real-time or generating code
`modes. the code generation interfaces are only-used when generating code. When used in
`conjunction with other general interfaces. complete motion control programs may be generated.
`This section discusses each of the code generation interfaces.
`
`
`
`ROY-G-BIV Corporation Confidential
`0:: 1995 ROY-G-Blv Corporation. All Rights Reserved.
`
`3/15/95
`
`Page 14 of 18
`Page 14 of 18
`
`
`
`
`~
`
`
`
`xuc Motion Comm! XMCAPI Reference
`
`4.0 !It: Motion Control Component
`
`‘
`
`.‘
`
`4.3.1 IXMC_Operator Interface
`
`The D(MC_0perator interface contains general program statement generating functions
`including bitwise operations. mathematical operations, logical operations. and general conditional
`operations. The following functions are in the IXMC_Operator interface:_
`
`“Gain:
`
`:3
`
`CE_PI
`
`Bltwioo
`('pOper)->BitAnd()
`('pOper) ->BicNot()
`('pOper) ->Bit0r ()
`('pOper) ->aitShich()
`('pOper) ->Bit:ShiftR ()
`l'pOper) ->8itXOr()
`
`Logical
`('pOper) ->And ()
`('pOper) ->Not: ()
`('pOper) ->0: ()
`
`Mathematical
`('pOper)->Add()
`l'pOper)->Bi:()
`('pOper)->Div()
`('pOper)->LeftPazen()
`('pOpe:)->Mult()
`(*pOper)->RightParenl)
`('pOper)->Sqrt()
`('pOper)->Sub()
`
`Trigonometric
`l'pOper) ->ACos ()
`('pOpez) ->ASin ()
`('pOper) ->ATan ()
`('pOper) ->Cos ()
`('pOper)->Sin()
`('pOp'er)->Tan()
`
`.
`'
`
`Labels/StringsIComments
`“f'pOpem ->ASCIIChar()
`('pOper) ->Comment ()
`('pOper)->DeclLabe1()
`('pOper) ->Scring ()
`
`Conditional
`('pOper) ->Equal ()
`-('pOpe:) ->GreaterThan ()
`l'pOper) ->Greate:ThanEqual ()
`('pOper) ->Less’rhan ()
`('pOper) ->LessThan£qual ()
`('pOper) —>Not:£qual ()
`
`.
`
`
`
`‘
`
`-.
`
`4.3.2 IXMC.;Program Interface
`The IXMC__Program interface is used to generate the general program shell. Several other
`program flow fitnctions like causing the program to sleep for a specified amount oftime are also
`included. The following methods make up theinterface:
`
`Program Flow
`(‘pProq) ->Combine()
`('pProq)->Define()
`('pProg) ->Download()
`‘
`
`ROY-G-BIV Corporation Confldentlal
`3/1895
`6 1995 ROY—G—BIV Corporation. All Rights Reserved.
`
`Page 15 of 18
`Page 15 0f 18
`
`
`
`‘
`
`l
`
`
`
`XMC Motion Control XMCAPI Rotonnco 4.0 XMC Motlon Control Component
`
`I
`
`I
`
`‘
`
`
`
`
`1%}
`
`"
`
`('pong)->End()
`('pProg)->Exit()
`('pP:og)->RenderAsText()
`('pProg)->Run()
`('pProg)—>Sleep()
`('pProg)->Stop(l
`
`4.3.3 IXMC_ProgramFlow Interface
`
`The lXMC_ProgramFlow interface is used to generate code used to control the flow of a
`program. Methods are available to generate if-clse and general looping statements. The following.
`methods are in the IXMC_ProgramFlow interface:
`
`lf/Else
`('pProgE‘low) -> I fOpen ()
`('pProgFlow)->I£Close()
`('pProgFlow)->Else()
`('pProgFlow)->£ndlf()
`
`While
`('pProgFlow)->WhileOpen()
`('pProgFlow)->Whileclosel)
`('pProgE‘low) ->EndWhile ()
`
`Repeat
`('pProgFlow)->Repeat()
`('pProgFlow)->UntilOpen()
`('pProgFlow) ->UntilClose ()
`
`‘
`
`.
`Loops
`('pProgFlow)->Loop()
`('pProgFlow)->£ndLoop()
`
`Misc.
`('PProgFlow)—>Break()
`('pProgElow)—>GoTo()
`
`4.3.4 IXMC_ProgramMgmf Interface
`
`The IXMC_ProgratnMgmt interface is used when working with programs on a high level.
`Running and saving programs are a few operations included in this interface. The following
`methods make up the interface:
`
`Program Management
`('pProgMgmt)->Download()
`('pProgMgmt)->Upload()
`('pProgMgmc) ->Set0utput: ()
`'( 'pProgMgmc) ->Open0utpuc ()
`('pProgMgmc) ->Close0utpuc ()
`('pProgMgmtl ->Flush0ucput ()
`
`
`ROY-G-BIV Corporatlon Confidential
`3115195
`0 1995 ROY-G-BIV Corporation. All Right: Reserved.
`
`Page 16 of 18
`Page 16 0f 18
`
`
`
`4.0 I!C Motion Control Compomm
`XMC Motion Conuol XIClli Reference
`
`4.3.5 IXMC_Subroutine Interface
`
`”Hie IXMC_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 ( l
`('pSub) ->E:nd ()
`l'pSub) ->Call ()
`
`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:
`
`Definition
`('pVat) ->Define ()
`
`Assignment
`(-pVar) ->AssignNumeric ()
`('pVarl ->AssigrtBinary ()
`('pVar) ->Assignscring ()
`
`_
`
`4.4 Custom OLE Interfaces - Diagnostic
`Diagnostic interfaces may be 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, andall information flowing in
`" and out of specified ports.
`
`.
`
`-
`
`4.4.1 IXNIC_Error Interface
`The IXMC__Error interface is provided to give the application developer a consistant method of
`displaying and logging all XMC enters based on the HRESULT value retumed by functions that
`fail. The following methods are in the interface:
`
`Setting Attributes
`('pError) ->Set0utput ()
`
`Actions
`('pError) ->Display()
`('pError) ->Log ()
`('pEzror) ->St:ingF:omHR£SULT ()
`
`4.4.2 IXMC_Debug Interface
`
`The IXMC_Debug interface gives the application developer control over several log files that
`may be generated to help debug an application using the XMC software model. The following
`methods are in the interface:
`
`Setting Attributes
`l 'pDebug) ->Se:XMCAPILogFile (
`('pDebug) ->SetXMCAPIScream ()
`
`)
`
`Actions
`('poebug) ->EnableXMCAPILogging ()
`('poebugl ->Enableoiagnos:ics ()
`
`
`
`
`E
`;._
`
`___________________———'_—————311 ms
`ROY-G-alv Corporation Confidential
`0 1995 ROY—G-BIV Corporation. All Rights Reserved.
`
`Page 17 of 18
`Page 17 0f 18
`
`
`
`
`
`Motion Control Component Specification Appendlx A
`
`Appendix A
`
`A. 1 Reviewer Feedback
`
`Aii feedback is irnporiani in orderIf) evolve the spcczficaticnsue a standard scflwae .._ode! -or
`motion control hardware. Please at a minimum. respond to the followingissues:
`
`.
`
`9v+u-
`
`, 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?
`Are there any specific scenario-maps you would like to see in the next revision?
`Are there any specific C or C++ code examples you would like to see?
`Are there anyspecific Visual Basic code examples you would like to see?
`
`A.l.l Correspondence
`
`If possible, please send all feedback over email to the following address:
`
`Dave Brown
`
`ROY-G-BIV Corporation
`Comptiserve: 72 103.2235
`lntemet:
`72103 .223 5@compuserve.com
`
`Otherwise, if you do not have access to email, please mail all correspondence to the following
`address:
`
`Dave Brown
`
`ROYoG-BIV Corporation
`PO. Box 1278
`
`White Salmon, WA. 98672
`
`'
`
`"
`
`Ev»;
`
`
`
`
`ROY-G-alv Corporation Confldentlnl
`3115195
`0 1995 ROY-G-Blv Corporation. All Rights Reserved.
`
`Page 18 of 18
`Page 18 0f 18
`
`