`Brown et al.
`
`[54] MOTION CONTROL SYSTEMS
`
`[75]
`
`Inventors: David W. Brown. White Sabnon; Jay
`S. Clark. Seattle, both of Wash.
`
`[73] Assignee: Roy-G-Biv Corpontion. White
`Sabnon, Wash.
`
`[21] Appl. No.: 454,736
`
`May 30, 1995
`
`[22] Filed:
`Int. CL 6
`............................ GOSB 19118; G05B 19/42
`[51]
`[52] U.S. CI ................... 3641167.01; 364/191; 318/568.1
`[58] Field of Search ......................... 364/167.01,474.21,
`364/474.22. 474.23, 474.24, 474.25. 474.26,
`191. 138; 395/500; 318/567. 568.1
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,937,737
`5,095,445
`5,126,932
`5,175,817
`5,245,703
`5,247,650
`5,453,933
`5,491,813
`
`611990 Schwane et aI ..
`3/1992 Sekiguchi.
`611992 WoHson et aI ..
`1211992 Adams et aI ..
`911993 Hubert.
`911993 Judd et aI ..
`9/1995 Wright et aI ....................... 364/47423
`211996 Bondy et aI ............................ 395/500
`
`aTHER PUBLICATIONS
`
`WOSABackgrounder: Delivering EnteIprise Services to the
`Windows-based Desktop, Jul. 1993, Microsoft Develop(cid:173)
`ment Ubrary.
`WOSA Inside Wmdows 95. pp. 348--351.
`Software Products For Industrial Automation, ICONICS.
`The Complete, Computer-Based Automation Tool (lGSS).
`Seven Technologies NS.
`OpenBatch Product Brief, PID, Inc.
`FIX Product Brochure. Intellution (1994).
`AIMAX-WIN Product Brochure, TA Engineering Co .. Inc.
`XANALOG Model NL-SIM Product Borchure. XANA(cid:173)
`LOG.
`
`IIII 111111111.111
`
`USOO5691897 A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,691,897
`Nov. 25, 1997
`
`ExperTune PID Tuning Software, Gerry Engineering Soft(cid:173)
`ware.
`Paragon TNT Product Brochure, Intec Controls Corp.
`Compumotor Digiplan 1993-94 catalog. pp. 10-11.
`Aerotech Motion Control Product Guide. pp. 233-234.
`PMAC Product Catalog, p. 43.
`PC/DSP-Series Motion Controller C Programming Guide.
`Precision Motion Controls Product Guide, p. 17.
`WEB 3.0 Product Brochure, Trihedral Engineering Ltd.
`(1994).
`Oregon Micro Systems Product Guide.
`
`Primary Ewminer-Paul P. Gordon
`AttomeJ.\ Agen~ or Firm-Michael R. Schacht; Hughes.
`Multer & Schacht. P.S.
`
`[57]
`
`ABSTRACT
`
`A system for motion control in which an application is
`developed that is independent from the actual motion control
`hardware used to implement the system. The system com(cid:173)
`prises a software system that employs an application pro(cid:173)
`gramming interface comprising component functions and a
`service provider interface comprising driver functions. A
`system programmer writes an application that calls the
`component functions. Code associated with the component
`functions relates these functions to the driver functions. A
`hardware designer writes driver code that implements the
`driver functions on a given motion control hardware prod(cid:173)
`uct. The driver functions are separated into core and
`extended driver functions. All software drivers implement
`the core driver functions, while the software drivers need not
`contain code for implementing the extended driver func(cid:173)
`tions. If the software driver does not contain code to
`implement an extended driver function, the functionality of
`the extended driver function is obtained through a combi(cid:173)
`nation of core driver functions. The system programmer may
`also select one or more streams that allow the control
`commands to be communicated to. and response data to be
`communicated from, motion control hardware.
`
`25 Claims, 58 Drawing Sheets
`
`Page 1 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 1 of 58
`
`5,691,897
`
`FIG. IA
`10"
`12\ '\
`
`24
`
`26 [1--------
`
`-;-]
`
`EXCEL APPLICATION
`I
`I VISUAL BASIC APP
`: c++ APPUCATION
`I
`I
`I
`l _____________ J
`
`en
`o
`lL.
`. - - - - - - - (
`_----4:ii! o a::
`........ g
`
`lL.
`
`STAN04RD OLE INTERFACES
`CORE INTERFACES
`EXTENDEDINTER~CES
`EXTENDED UI INTERFACES
`CODE GENERATION INTERFACES
`VENDOR SPECIFIC INTERFACES
`
`TO/FROM FIG. 10
`
`Page 2 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 2 of 58
`
`5,691,897
`
`FIG. 18
`
`38
`
`DRIVER
`~---=!MADMINISTRATOR
`CPL
`
`40
`~----;~DDE SERVER
`
`UNKNOWN
`
`ORNER
`ADMIN
`
`STANQt\RD CLE
`INTERFACES
`CUSTOM OLE
`INTERFACES
`
`32
`
`STANDARD OLE INTERFACES
`MOTION
`GENRAL INTERFACES
`<{
`CONTROL
`'r\ CODE GENERATION INTERFACES
`li::
`COMPONENT
`DIAGNOSTIC INTERFACES
`~ ) - - - - - - - - - - - - - t - t - EXTENDED
`SPI
`~
`.... L.-----' TABLE
`
`IJ... a F-
`
`STANDARD OLE INTERFACES
`EXTENDED INTERFACES
`EXTENDED UIINTERFACES
`
`[yUNKNOWN
`STANDARD Cl..E INTERFACES
`MOTION
`CORE INTERFACES
`CONTROL
`EXTENDED INTERFACES
`DRIVER B
`HA~WARE
`EXTENDED UI INTERFACES
`CODE GENERATION INTERFACES
`LANGUAGE
`VENDOR SPEQFIC INTERFACES DEPENDENT
`
`I
`
`35
`
`36
`
`30b
`
`TO/FROM FIG. IE
`
`Page 3 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 3 of 58
`
`5,691,897
`
`FIG. Ie
`
`,
`
`}
`
`,
`
`I
`
`/
`
`I
`
`yUNKNOWN
`STANDt\RDOLE INTERFACESc~ ~~V2~L
`CORE INTERFACESo-
`EXTENDED INTERFACES 0- DRIVER C
`EXTENDED UllNTERFACESo- HAR~ARE
`CODE GENERATION INTERFACEso- LANGUAGE
`VENDOR SPECIFIC INTERFACESo- DEPENDENT
`
`30c
`
`v
`
`TO/FROM FIG. IF
`
`Page 4 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 4 of 58
`
`5,691,897
`
`FIG. 10
`
`TO/FROM FIG. IA
`
`1ST
`
`..... IV ... ....-.MOTION CONTROL
`TEXT FILE
`STREAM
`TEXT
`COMMUNICATION
`PROTOCOL
`
`28d
`
`IUNKNOWN
`
`MOTION CONTROL
`PC BUS
`STREAM
`PC BUS
`COMMUNICATION
`PROTOCOL
`
`280
`
`34
`
`PERSONALOOMPUTERHAROWAREBUS
`w
`~----~--------~
`(!j
`G:
`~
`(f o
`
`~--------------------~--------------~~r
`
`160
`
`180
`
`200
`
`MECHANICAL
`SYSTEM A
`
`MOTION CONTROL
`DEVICE A
`
`Page 5 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 5 of 58
`
`5,691,897
`
`FIG. IE
`
`TO/FROM FIG. IB
`
`IUNKNOWN
`
`ISTREAM MOTION CONTROL
`PC BUS
`STREAM
`PC BUS
`COMMUNICAllON
`PROTOCOL
`
`28b
`
`0
`
`c..rj
`LL
`::E
`0 a::
`LL
`"-g
`
`1Gb
`
`lab
`
`20b
`
`MECHANICAL
`SYSTEM A
`
`MOTION CONTROL
`DEVICE 8
`
`!:!:
`l!:i
`LL
`~
`0 a::
`LL
`........
`~
`
`Page 6 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 6 of 58
`
`5,691,897
`
`FIG. IF
`
`TO/FROM FIG. IC
`""r-'
`
`T
`
`IUNKNOWN
`\1 Y
`I STREAM )- MOTION CONTROL
`HARDWAREC
`PC BUS STREAM
`28c~ SPECIAL PC BUS
`COMMUNICATION
`PROTOCOL FOR
`HARDWAREC
`
`•
`'-,
`
`( ,
`
`16c -
`
`1--
`
`.... 1-
`
`18c --------
`
`20c ______ r-
`
`,/
`I III
`"'---'-.
`
`- f 14
`
`"--L
`
`\.
`
`/ /
`"
`HARDWARE
`CONTROLLER C~
`\
`\
`
`"
`
`MECHANICAL
`SYSTEM A
`
`I
`I
`MOTION CONTROL
`DEVICEC
`
`Page 7 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 7 of 58
`
`5,691,897
`
`FIG. 2
`26
`r----~--------.. ----.-----.----.. ---.-.--,
`EXCEL APPLICATION
`
`VISUAL BASIC APP.
`C++ APPLICATION
`
`~------------ -----------------_ .. _-_._._---
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`~
`.
`.
`.
`~ '"
`.
`.
`.
`.
`.
`.. -
`.'
`:
`............... .
`MOTION
`COMPONENT
`
`34
`
`.
`IUnknown
`
`IUnknown
`
`Page 8 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 8 of 58
`
`5,691,897
`
`FIG. 3
`
`IUnknown
`
`IXMC xxxAPI
`
`26
`r---~--------------------------.. --.------~
`EXCEL APPLICATION : • • • • • • • •
`C++ APPLICATION
`:
`• I • •
`~----.. -........ -......... . ........... ---.. :
`IUnknown
`
`IXMC_xxxAPI
`
`MOTION
`COMPONENT
`34 ............... !::::::::;:z===~
`....
`.....
`.. '
`..........
`.....
`.........
`.......
`......
`
`. ..... . . ........ .
`. ...
`CCmpntDis +--__ ~ CDriverAdmin
`
`CDriverMgr
`
`-+-----4-.. C U nitMapper
`
`CDriver
`
`IUnknown
`
`DRIVER
`STUB
`
`IUnknown
`
`DRIVER
`
`36
`
`Page 9 of 92
`
`
`
`u.s. Patent
`
`Nov. 2S, 1997
`
`Sheet 9 of S8
`
`5,691,897
`
`FIG. 4
`
`IUnknown
`
`IXMC xxxAPI
`
`26
`r---~----.. -.----...................... -.-
`EXCEL APPLICATION
`
`VISUAL BASIC APP.
`C++ APPLICATION
`
`IXMC_xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`5
`
`......
`'" .... .....
`. '''.
`
`J--+ CDriverAdmin
`
`CUnitMapper
`
`I Unknown
`
`DRIVER
`STUB
`
`IUnknown
`
`DRIVER
`
`30
`
`Page 10 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 10 of 58
`
`5,691,897
`
`FIG. 5
`
`26
`r---~---------------------------.------.--
`EXCEL APPLICATION
`
`C++ APPLICATION
`
`I Unknown
`
`MOTION
`COMPONENT
`• !:::~====::::~ ....... 11'.
`......... . ..... ......
`'" ..........
`
`"""--
`
`CUnitMapper
`
`IUnknown
`
`DRIVER
`
`30
`
`Page 11 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 11 of 58
`
`5,691,897
`
`FIG. 6
`
`26
`---~---------------.--.---------.--------,
`EXCEL APPLICATION
`
`C++ APPLICATION
`
`--------------------------1 -r--;~~~:w:cs Measurements
`
`IXMC xxxAPI
`
`MOTION
`COMPONENT
`34 ........ ,..
`'., , ..... .
`. ...
`......
`.
`. .....
`.
`........
`. .....
`.....
`........
`. .....
`...
`. .....
`. ..... .
`.........
`PCS Measurements
`
`CCmpntDis
`3 ~-'
`
`CUnitMapper
`
`MCS-",
`Measu rements Io.o--!I-----t--
`
`MCS --'-__ """"
`Measurements
`
`IUnknown
`
`IXMC xxxSPI
`
`DRIVER
`
`Page 12 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 12 of 58
`
`5,691,897
`
`FIG. 7
`
`::~--------------------------------------
`
`EXCEL APPLICATION
`
`C++ APPLICATION
`
`IUnknown
`
`MOTION
`COMPONENT
`....
`'"
`
`......
`• ... 4'., ••
`. ..... .
`..
`.
`. ....
`. .....
`. ..
`. .....
`
`IXMC xxxAPI
`
`.. '
`
`34
`.
`............
`.........
`.........
`.....
`.,...
`.....
`.....
`
`CCmpntDis
`3
`
`CUnitMapper
`
`CDriver
`
`IUnknown
`
`DRIVER
`STUB
`
`Page 13 of 92
`
`
`
`u.s. Patent
`
`Nov. 2S, 1997
`
`Sheet 13 of S8
`
`5,691,897
`
`FIG. 8
`
`26
`r---~-------------------------------------~
`EXCEL APPLICATION
`
`C++ APPLICATION
`
`IUnknown
`
`~ • • ,
`:
`.. /(0
`---
`MOTION
`OMPONENT
`-
`. ...-----t.,. . ...
`........ .
`.. "::::::::;t:::=~
`....
`
`" ..... ....... .......... ....
`
`6
`
`IUnknown
`
`DRIVER
`STUB
`
`IUnknown
`
`DRIVER
`
`30
`
`Page 14 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 14 of 58
`
`5,691,897
`
`FIG. 9
`
`IUnknown
`CComponentOjbect ......... ________ ----.
`
`Standard OLE 2.0 Interface
`
`IClassFactory
`
`I Dispatch
`
`Standard OLE 2.0 Interface
`
`Standard OLE 2.0 Interface
`
`API Interfaces
`
`IXMC_API_1
`
`MCAPI Interface #1
`
`IXMC_API_2
`
`XMCAPllnterface #2
`o
`o
`o
`MCAPllnterface #n
`
`Page 15 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 15 of 58
`
`5,691,897
`
`FIG. 10
`CD riverS PITabie 1 - - - -
`_
`_INFO struct
`
`(
`
`fORVEXT _Xn_INTERFACEIDs enuml
`
`IXMC DrvExt X1
`-
`-
`IXMC DrvExt X2
`
`\-
`
`,
`
`I
`
`/ ' '
`
`o
`0
`'~ IXMC_DrvExt_Xn t
`i ti--O-R-V-EX-T-INT-E-R-F-A-C-E-I-N-FO-st-ru-ct-r,---------"---4
`
`.
`
`r-fDRVEXT_xn_METHODIDs enum
`l ___ Methodlnfo 1
`"- .. Methodlnfo 2
`o
`o
`o
`\'-] Method Info _n I
`rDRVEXT _METHOD_INFO struct I
`
`I
`
`I
`!
`!
`:
`;
`1
`i
`
`I
`
`I
`'
`:
`I
`
`I
`
`IXMc_sUPPORnYPE
`
`ICString
`
`m_st;
`
`ILPFNDRVEXT
`
`m-PfnMethod;1 : '
`
`I : I
`m_strName; I I
`
`Page 16 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 16 of 58
`
`5,691,897
`
`FIG. 11
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`IUnknown
`
`DRIVER
`
`IUnknown
`
`STREAM
`
`Page 17 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 17 of 58
`
`5,691,897
`
`FIG. 12
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`DRIVER
`~ .................................... ""-----I----+-'
`................. "'....
`.....................
`.
`
`~
`
`IXMC xxxUDSPI
`
`I Unknown
`
`STREAM
`
`Page 18 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 18 of 58
`
`5,691,897
`
`FIG. 13
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`FIG. 14
`
`..................
`
`. . . . . . . . . a ••• •••
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`.....................
`................
`................
`
`IUnknown
`
`DRIVER
`....• r-----r,
`
`-~-~
`..
`
`.
`
`Page 19 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 19 of 58
`
`5,691,897
`
`FIG. 15
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`~Stream CLSID
`1
`IUnknown
`
`DRIVER
`
`Page 20 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 20 of 58
`
`5,691,897
`
`FIG. 16
`IXMC xxxAPI
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`DRIVER
`....... ,,.....--.......
`
`IUnknown
`
`STREAM
`
`Page 21 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 21 of 58
`
`5,691,897
`
`FIG. 17
`IXMC xxxAPI
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`......
`.. " ... -.......... ..
`......
`........... , ......... .
`..............
`.....
`.........
`
`..... - - -1 31------1
`
`IUnknown
`
`DRIVER
`
`.. ~ ... --(cid:173)
`
`. .
`· · · ·
`
`Page 22 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 22 of 58
`
`5,691,897
`
`FIG. 18
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`IUnknown
`
`DRIVER
`
`..... ---.
`
`.
`
`CCommandLis,",,-,- --' ~"",,-...... I CResponseList I
`
`IUnknown
`
`STREAM
`
`Page 23 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 23 of 58
`
`5,691,897
`
`FIG. 19
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`IUnknown
`
`....................
`............ .......... , .......... . .......................
`
`. . . . . . . . . . . . . . . l1li . . . . . . "'---I~~,
`
`DRIVER
`.
`. .
`
`lUnknown
`
`STREAM
`
`Page 24 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 24 of 58
`
`5,691,897
`
`FIG. 20
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`IUnknown
`
`.....................
`..........
`............
`
`... ......... ....
`
`DRIVER
`..... , .......... .
`
`""---,f----- .
`
`. .
`
`.111 ...•. ·········· .. ···
`
`CCommandLis
`
`CResponseList
`
`IXMC xxxUDSPI
`
`lUnknown
`
`STREAM
`
`Page 25 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 25 of 58
`
`5,691,897
`
`FIG. 21
`I CDriverObject 19
`
`IUnknown
`
`I/\.
`Standard OLE 2.0 Interfacel
`
`IClas sFactory 0-
`
`KStandard OLE 2.0 Interface
`
`IXMC
`DrvCore
`-
`Static State 0-
`IXMC
`DrvCore
`Dyna micStateo-
`IXMC
`DrvCore
`-
`0-
`SPI3
`
`IXMC
`-
`SPI n
`
`DrvCore
`0-
`
`SPI Core Interfaces r--------------------
`K Stat, ...
`VI T r
`r\. nI la Ize, ...
`
`VXMCSPI Core Interface #3
`i\.
`0 8
`v XMCSPI Core Interface #n
`I\.
`SPI Extended Interfaces· r ------------_.
`
`IXMC
`DrvExt
`-
`-
`Strea mMgmt 0-
`IXMC
`DrvExt
`-
`-0-
`SPI2
`
`IXMC
`-
`SPI n
`
`DrvExt
`-0-
`
`V Add, Remove, Enable, ...
`I\.
`~ XMCSPI Extended Interface #2
`8
`
`~ XMCSPI Extended Interface #n
`
`Page 26 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 26 of 58
`
`5,691,897
`
`FIG. 22
`
`IXMC xxxAPI
`
`IXMC xxxSPI
`
`IUnknown
`DRIVER
`
`IUnknown
`DRIVER
`ADMIN.
`
`IUnknown
`
`IXMC xxxUDSPI
`
`~
`
`FILE
`
`D VICE
`DRIVER
`(WinNT)
`
`D VICE rr ~)
`DRIVER
`-
`SERIAL 110
`(Win95)
`
`Page 27 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 27 of 58
`
`5,691,897
`
`FIG. 23
`
`IXMC _xxxSPI
`
`IXMCyxxAPI
`
`IUnknown
`
`IUnknown
`DRIVER
`ADMIN.
`
`IUnknown
`
`IXMC_xxxUDSPI
`............
`....................
`.....
`...................
`
`...... ---..
`
`. ...
`
`. ....
`. ....
`.. ....
`
`~---r----.;......I
`
`1------+ CRegistryMgr
`
`~CIOHAL
`
`,,--_~t-Cii:::~-~CIOHAL
`~C~T~e:::xt~F~ile:l.IO~HuAAiL+-I.-
`
`~CIOHAL
`-=~----, CSeriallOHAL
`
`DEVICE
`DRIVER
`(WinNT)
`
`DEVICE
`DRIVER
`(Wing5)
`
`"';;~AL 1/0
`
`Page 28 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 28 of 58
`
`5,691,897
`
`FIG. 24
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`IXMC_xxxUDSPI
`................... r---_\. ~
`.....
`-..
`• • • • 11-...........
`.. ,
`...•..
`.......
`..........
`"
`'.
`.....
`~
`\"
`
`'.
`
`CRegistryMgr
`
`CTextFilelOHAL
`
`CSerialiOHAL
`
`DEVICE
`DRIVER
`(WinNT)
`
`DEVICE
`DRIVER
`(Wing5)
`
`~ALI/O
`
`Page 29 of 92
`
`
`
`u.s. Patent
`
`Nov. 2S, 1997
`
`Sheet 29 of S8
`
`5,691,897
`
`FIG. 25
`IXMC xxxAPI
`
`IUnknown
`DRIVER
`ADMIN.
`
`{ REGISTRY( IXMC xxxUDSPI
`~ - 21-----f.
`
`IUnknown
`
`FIG. 26
`
`IUnknown
`DRIVER
`ADMIN,
`
`IUnknown
`
`IXMC_xxxUDSPI
`
`..............
`............
`
`• • • • • • • •
`
`"
`..........
`1.....1----1 ",
`..... ........
`"--'"J-----' '"
`
`. ....
`-..
`
`It ••
`
`CRegistryMgr
`
`Page 30 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 30 of 58
`
`5,691,897
`
`FIG. 27
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`IXMC xxxAPI
`1
`
`IUnknown
`
`IXMC xxxUDSPI
`....................... ~:::==-~-.-.... .... ~
`. .....
`................
`........
`..
`.. ..
`.............
`
`CRegistryMgr
`
`Page 31 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 31 of 58
`
`5,691,897
`
`FIG. 28
`
`IUnknown
`
`IXMC xxxSPI
`
`IUnknown
`
`......................... '-•.•• ~ •. =F===-'..:.;,f... ••.•• ~
`. ..
`...............
`..
`.....
`............
`.."'''
`
`CRegistryMgr
`
`CDbgMonlOHAL
`
`CTextFilelOHAL
`
`CPCBuslOHAL CSerialiOHAL
`
`Page 32 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 32 of 58
`
`5,691,897
`
`FIG. 29
`
`I Unknown
`DRIVER
`
`IXMC xxxUDSPI
`...........
`.............
`
`..........
`
`.......................
`......
`
`IUnknown
`
`•••••• , ___ - - t ••
`'.
`
`... ...
`+.
`
`. ....... .
`. ...
`
`CTextFilelOHAL
`
`CSeriallOHAL
`
`DEVICE
`DRIVER
`(WinNT)
`
`DEVICE ~
`=
`DRIVER
`~ SERIAL I/O
`(Wing5)
`_ .. -.. _.. .. _ .. _ .. _ .. _.. .. -.. _ .. -.. -~. _ .. _ .. _ .. -.. _ .. _ .. _ .. -
`
`HARDWARE DEVICES
`
`Page 33 of 92
`
`
`
`IXMC_xxxUDSPI
`.............
`..............
`..........
`........
`..............
`
`....... _-..
`
`'.
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 33 of 58
`
`5,691,897
`
`FIG. 30
`
`IXMC_xxxSPI
`
`IUnknown
`DRIVER
`
`IUnknown
`
`.. ...
`. .•..
`-..
`. ...
`
`FILE
`
`DEVICE
`DRIVER
`(WinNT)
`
`DEVICE ~
`=
`DRIVER
`t1 SERIAL 1/0
`(Win95)
`............ .................. . ................. ~ ............................. ..
`
`HARDWARE DEVICES
`
`Page 34 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 34 of 58
`
`5,691,897
`
`FIG. 31
`
`IUnknown
`
`IXMC xxxSPI
`
`IUnknown
`
`.•.. '11............
`....
`...............
`
`....... r - - - t •.
`'.
`
`. ..
`-..
`
`-..
`
`.....
`
`......
`
`tI •• •••••••••••
`
`CSerialiOHAL
`
`DEVICE
`DRIVER
`(WinNT)
`
`DEVICE ~
`=
`DRIVER
`rt SERIAL I/O
`(Win95)
`.. -.. - .. -.. -~.-.. -.. -.. -.. -.. -.. -.. -
`
`HARDWARE DEVICES
`
`Page 35 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 35 of 58
`
`5,691,897
`
`FIG. 32
`
`IUnknown
`DRIVER
`
`IXMC xxxSPI
`
`IUnknown
`
`IXMCyxxUDSPI
`......
`" ••••••••••• I' l ...!:::t===-:.>l
`............. ....
`"'-
`.....
`.................. _-----..-1\
`....
`
`7 ~
`
`CSeriallOHAL
`
`DEVICE
`DRIVER
`(WinNT)
`
`DEVICE
`DRIVER
`(Win9S)
`
`6
`- .. _ .. _ .. _ .. -.. _-._ ... _ .. _ .. - .. _ .. _ .. _ .. _ .. _ .. - .. - .. _ .. _ .. _ .. _ .. -
`
`6
`
`HARDWARE DEVICES
`
`Page 36 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 36 of 58
`
`5,691,897
`
`FIG. 33
`
`bject
`
`IUnknown
`
`Standard OLE 2.0 Interfac
`
`IClassFactory
`
`Standard OLE 2.0 Interface
`
`I • UnDocumented
`
`IXMC Stream
`
`Read, Write, Enable, Stat, ...
`
`IXMC Streamlnit
`
`Initialize, Open, Close, Setup, ...
`
`FIG. 34
`
`IUnknown
`
`MOTION
`COMPONENT
`
`IXMC xxxAPI
`
`IUnknown
`
`DRIVER
`STUB
`
`.................. >~
`
`IUnknown
`
`DRIVER
`
`Page 37 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 37 of 58
`
`5,691,897
`
`FIG. 35
`
`IXMC xxxSPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`IXMC xxxAPI
`
`IUnknown
`
`9""-"'-.., ...... +---.~
`''C....!::::::::t==-...;; ....... . ..........
`···.41 ...... ......
`
`CDriverStub
`
`IUnknown
`
`IXMC xxxSPI
`
`Page 38 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 38 of 58
`
`5,691,897
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`FIG. 36
`
`IXMC xxxSPI
`
`IUnknown
`
`Page 39 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 39 of 58
`
`5,691,897
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`FIG. 37
`
`IXMC xxxSPI
`
`~.!:::::;:t;;::~...;; ..•.•...•
`
`~ ....... . .......... ....
`
`IUnknown
`
`IXMC xxxSPI
`
`Page 40 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 40 of 58
`
`5,691,897
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONENT
`
`FIG. 38
`
`IXMC xxxSPI
`
`.~.!:::;;t;;;::~.-:; · .. lt lt • • • • ............. ...... " .. .......
`
`IUnknown
`
`IXMC xxxSPI
`
`Page 41 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 41 of 58
`
`5,691,897
`
`FIG. 39
`I CDriverStubObjectl Cj> IUnknown
`/'\
`Standard OLE 2.0 Interfacel
`
`IClas sFactoryo-
`
`{Standard OLE 2.0 Interface
`\
`... ---.......
`Stub Specific Interfaces I
`
`IXMC DrvStub 0-
`
`(RegisterDriver, UnRegisterDriver
`
`/ XMCSPI Extended Interface #1
`
`SPI Extended Interfaces I ------------_.
`,
`,
`
`/ XMCSPI Extended Interface #2
`§
`~ XMCSPI Extended Interface #n
`
`IXMC
`-
`SPI 1
`IXMC
`-
`SPI 2
`
`DrvExt
`
`cr-
`DrvExt -cr-
`
`DrvExt
`
`IXMC
`-
`SPI n
`
`0-
`
`Page 42 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 42 of 58
`
`5,691,897
`
`FIG. 40
`DRIVER
`ADMIN. CPL
`
`IXMC xxxAPI
`
`IUnknown .
`
`MOTION
`COMPONEN
`
`pDrvlnfo, I
`pStrmlnfo t
`
`pDrVE1ium
`IUnknown
`
`DRIVER
`ADMIN.
`
`IUnknown
`
`IUnknown
`
`IXMC
`xxxSPI
`
`IXMC
`UDxxxSPI
`
`Page 43 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 43 of 58
`
`5,691,897
`
`FIG. 41
`DRIVER
`ADMIN. CPL
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONEN
`
`pDrvlnfo, I
`pStrmlnfo,,",
`
`....
`.. ,
`.... l1li.....
`............
`I.
`
`. . . . .
`
`••••••••
`
`pDrVEtium
`I Unknown
`~-------~
`DRIVER ~
`ADMIN.
`... .....
`\. ..!:F===-~ -"It •
`---
`...
`. ...
`. ..... " ..
`
`41 • • • •
`
`'II.
`
`n-t---~CDriverl nfoMa
`' - - - - - -w - - - - - - I .....
`
`. ................................................ .
`.....
`"
`...... ,...,t-~.........."...;..;....;~-.......... -f
`1 - - - - - - - - -1
`
`'---1--------'··.41 ....................................................
`
`I Unknown
`
`IUnknown
`
`IXMC
`xxxSPI
`
`IXMC
`UDxxxSPI
`
`Page 44 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 44 or 58
`
`5,691,897
`
`FIG. 42
`DRIVER
`ADMIN. CPL
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONEN
`
`IUnknown
`~-------~
`
`.....
`~'I===-..) ...... . .......... ........ .....
`
`rrf---~CDriverlnfoMa
`------.---~
`
`CSimpleDriver #n
`
`IUnknown
`
`IXMC
`xxxSPI
`
`Page 45 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 45 of 58
`
`5,691,897
`
`FIG. 43
`
`DRIVER
`ADMIN. CPL
`
`IUnknown
`......------... ( REGISTRY (
`DRIVER ~
`ADMIN.
`'~~t=:==-...) .ft . . . . . . ..
`f"'.
`••••••
`.-----\..'
`
`............ .
`'"
`
`o
`o
`CSimpleDriver #n
`
`IUnknown
`
`IXMC xxxSPI
`
`Page 46 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 46 of 58
`
`5,691,897
`
`FIG. 44
`DRIVER
`ADMIN. CPL
`
`DriverCLS ID,
`~pszStreamFileName
`
`IUnknown
`--------~
`
`~'I====-,..) ....... . ............ ...... ....
`
`..................................................
`.........
`leStream #1
`
`C S im p leD rive r # n oi--~~~~le~S~tr-e-a-m-#':":""n-t
`" ....... ................................................
`
`IUnknown
`
`IUnknown
`
`IXMC_
`xxxSPI
`
`IXMC -
`UDxxxSPI
`
`Page 47 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 47 of 58
`
`5,691,897
`
`FIG. 45
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`DRIVER
`idDrv, pDrvlnfo 1
`ADMIN. CPL
`.......
`.........
`......................... -----{
`..........
`
`)
`
`• • • • • • • • • 11 ••• •• .. ••
`
`CSimpleDriver #1
`
`o
`o
`CSimpleDriver #n
`
`IUnknown
`
`IXMC xxxSPI
`
`DRIVER
`
`Page 48 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 48 of 58
`
`5,691,897
`
`FIG. 46
`DRIVER
`ADMIN. CPL
`
`~idDrv, idStrm, pStrmlnfo
`
`IUnknown
`
`.....
`~~==~······.It
`
`.___ - . . . . . .
`
`It • • • • • • • •
`
`...... .....
`
`. . . . . . . . . 11 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
`
`.... ...----------, .
`. '
`...... ....,t-~~~-------..;.~.-,
`I-------~
`...... ------. ... . " ................................................ ,
`C S im pie 0 river # ~~~~--:-le-:::S:'7"tr-e-am--:#~n;
`
`IUnknown
`
`IXMC UDxxxSPI
`
`STREAM
`
`Page 49 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 49 of 58
`
`5,691,897
`
`FIG. 47
`
`IUnknown
`
`IXMC
`xxxAPI
`
`MOTION
`COMPONEN
`
`xxxAPI
`
`\ 1 .
`
`+-- pEnum
`. ., .. -
`'d
`. ,., .....
`IN ' , ... ·,·· .. ··•·· .. ·
`1.,,···14' •
`......... " ......... .
`
`• , •• 11 • • • •
`
`IUnknown
`
`DRIVER
`ADMIN.
`
`~)ICModuleMgrl
`(4f\\
`
`.~
`
`CSimpleDriver #1
`
`o
`o
`CSimpleDriver #n
`
`(5\
`~ IUnknown
`
`IXMC xxxSPI
`
`DRIVER
`
`Page 50 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 50 of 58
`
`5,691,897
`
`FIG. 48
`DRIVER
`ADMIN. CPL
`
`pDrvlnfoMap
`
`IUnknown
`
`CDriverlnfoMa
`
`............................................ '"
`..•. ,..--------.
`.' .~·n ............ ~ ......... ,;,;,...;;;;..;;";,;,,,,;;,.;~
`.. '
`.....-----~~
`CSimpleDriver #
`......... - t - - - - - . a ... -..
`,. ............................................... .
`
`IUnknown
`
`I Unknown
`
`IXMC
`xxxSPI
`
`IXMC
`UDxxxSPI
`
`Page 51 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 51 of 58
`
`5,691,897
`
`FIG. 49
`DRIVER
`ADMIN. CPL
`
`IXMC xxxAPI
`
`IUnknown
`
`MOTION
`COMPONEN
`
`IUnknown
`
`.....
`.. 2:::'I===-~ ".
`.........
`
`-...... . ........ ...........
`
`..................................................
`" "
`••••• nJ,...;~~;.:.;;.;:~;.;;;.;..;..;...:.;...~
`f-------...,J6.l,.
`CSimpleDriver # ~t......:a.~~--:--=:",--~
`................................................... "
`f·"e ..
`
`IUnknown
`
`IUnknown
`
`IXMC
`xxxSPI
`
`IXMC
`UDxxxSPI
`
`Page 52 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 52 of 58
`
`5,691,897
`
`FIG. 50
`
`IUnknown
`CDriverAdminOjbecth~ ________ -,
`
`Standard OLE 2.0 Interfac
`
`IClassF actory
`
`IDispatch
`
`Standard OLE 2.0 Interface
`
`Standard OLE 2.0 Interface
`
`Standard IEnumX OLE 2.0 Interface
`
`~----------r---.. -..... -.. ---------------
`API Interfaces
`
`Register, UnRegister, Setup, ...
`
`EnableLogging, IsLoggingOn, ...
`
`IXMC
`DrvAdmin
`
`Page 53 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 53 of 58
`
`5,691,897
`
`FIG. 51
`
`DIALOG
`C--O-K-~-Ca-n-ce-9
`
`DRIVER
`ADMIN. CPL
`
`- .. _ .. _ .. _ .. _.-_.. ..-.. _ .. _ .. _ .. - .. _ .. _ .. _ .. _ .. _ .. - ... ,.. .. _ .. _ .. -
`
`OPERATING SYSTEM
`
`DIALOG
`C--O-K-)~-Ca-n-ce-D
`
`DIALOG
`C--O-K-XC-a-n-ce-D
`
`IUnknown
`DRIVER
`ADMIN.
`
`Page 54 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 54 of 58
`
`5,691,897
`
`FIG. 52
`
`DIALOG
`(-O-K-)@"-a-n-ce-D
`
`DIALOG
`C"-~O-K-)@-a-n-ce-D
`
`DIALOG
`C--O-K-)@"-~-n-ce-D
`
`I--ro---'4...lViewSupportDlg
`'--..---.,.-_-:....1
`
`OpenFileDialog
`
`CDriverlnfoMap
`
`CDriverlnfo
`CStreamlnfo
`
`- -... CDriverAdmin
`
`......... _---+-----.
`..............................................
`
`............................... .
`IUnknown
`
`ADMIN. CPL
`
`IXMC xxxAPI
`
`DRIVER
`ADMIN.
`
`_ .. - .. _ .. _- -_._ .. _ .. _ .. - .. -.. _ .. - .. _ .. _ .. _ .. _ .. _ .. _ .. - .. _ .. _ .. -
`
`OPERATING SYSTEM
`
`Page 55 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 55 of 58
`
`5,691,897
`
`FIG. 53
`
`DRIVER ADMIN.
`DIALOG
`C"--O~K~)~""-a-nce-D
`
`------!iltP---pol....
`
`1------,1'2 __ -
`
`'-_)
`
`CComCPL
`
`~ __ ~A\~ ____________ ~~ ____ ~~
`• • • • 111 .... ' . · . · · .. ······#······
`.., ...... "." ........ ..
`IUnknown
`
`,. .... " .
`
`'~IIrI'I"'"II...--III' ....
`
`• • • " • • • • • • • • • , • • • • • • • 111' • • • •
`
`............
`
`.....
`
`DRIVER
`ADMIN.
`
`ADMIN. CPL
`
`("1
`
`OPERATING SYSTEM
`
`-.. -.. ~-.. -.. -.. -.. -.. -.. -.. -.. -.. -. -_.
`
`Page 56 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1m
`
`Sheet 56 of 58
`
`5,691,897
`
`FIG. 54
`
`DIALOG
`C-O~K--)(C-~-nc-eD
`
`. .......................... , ..
`......
`...................................
`I
`IU k
`.. ... I
`n nown
`. . . . . . . . ............
`DRIVER
`ADMIN. CPL
`
`DRIVER
`ADMIN.
`
`Page 57 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 57 of 58
`
`5,691,897
`
`FIG. 55
`
`DIALOG
`C--O-K-)@-~-n-ce-D
`
`DIALOG
`C--O-K-)(C-a-n-ce-D
`
`. ...................... .
`....
`...
`.. ............. .
`IUnknown
`I.... .............................................
`'. •••• •• 1
`DRIvER
`ADMIN. CPL
`
`DRIVER
`ADMIN.
`
`Page 58 of 92
`
`
`
`u.s. Patent
`
`Nov. 25, 1997
`
`Sheet 58 of 58
`
`5,691,897
`
`FIG. 56
`
`DIALOG
`C--O-K-)(C~a-n-ce""'D
`
`~ ____________________ ~3~ __ ~~~
`. .............................. .
`........
`'. •••• •• 1 DRIVERI..·. ..............................................
`IUnknown
`
`ADMIN. CPL
`
`DRIVER
`ADMIN.
`
`FIG. 57
`
`RT
`
`VIEW U
`DIALOG
`C-O-K-)~-Ca-nce--D
`
`("-i\
`12 I
`. j..
`
`'Ito
`
`................ " ••••••
`
`)1 CDriverAdmin I
`1\
`~.~-~--------------------~ .. ~ ... -.... -... -.... -, .. -.... ~ ... ~ ... ~
`I
`...............
`I Unknown
`...• I
`. DRiVER .......... ..
`ADMIN. CPL
`
`IXMC xxxAPI
`
`DRIVER
`ADMIN.
`
`Page 59 of 92
`
`
`
`5,691,897
`
`1
`MOTION CONTROL SYSTEMS
`
`TECHNICAL FIELD
`
`The present invention relates to motion control systems 5
`and, more particularly, to interface software that facilitates
`the creation of hardware independent motion control soft-
`ware.
`
`BACKGROUND OF THE INVENI10N
`
`2
`output (JIO) devices, including motion control devices, into
`a complex system used to automate a factory floor environ(cid:173)
`ment These factory automation applications allow any
`number of i/O devices to be used in a given system, as long
`as these devices are supported by the high-level program.
`Custom applications, developed by other software
`developers, cannot be developed to take advantage of the
`simple motion control functionality offered by the factory
`automation program.
`10 Additionally, these programs do not allow the program-
`mer a great degree of control over the each motion control
`device in the system. Each program developed with a factory
`automation application must run within the context of that
`application.
`
`The pwpose of a motion control device is to move an
`object in a desired manner. The basic components of a
`motion control device are a controller and a mechanical
`system. The mechanical system translates signals generated
`by the controller into movement of an object.
`While the mechanical system commonly comprises a
`drive and an electrical motor, a number of other systems,
`such as hydraulic or vibrational systems, can be used to
`cause movement of an object based on a control signal.
`Additionally, it is possible for a motion control device to 20
`comprise a plurality of drives and motors to allow multi-axis
`control of the movement of the object
`The present invention is of particular importance in the
`context of a mechanical system including at least one drive
`and electrical motor having a rotating shaft connected in 25
`some way to the object to be moved. and that application
`will be described in detail herein. But the principles of the
`present invention are generally applicable to any mechanical
`system that generates movement based on a control signal.
`The scope of the present invention should thus be deter- 30
`mined based on the claims appended hereto and not the
`following detailed description.
`In a mechanical system comprising a controller, a drive,
`and an electrical motor, the motor is physically connected to
`the object to be moved such that rotation of the motor shaft
`is translated into movement of the object The drive is an
`electronic power amplifier adapted to provide power to a
`motor to rotate the motor shaft in a controlled manner. Based
`on control commands. the controller controls the drive in a
`predictable manner such that the object is moved in the
`desired manner.
`These basic components are normally placed into a larger
`system to accomplish a specific task. For example, one
`controller may operate in conjunction with several drives
`and motors in a multi-axis system for moving a tool along
`a predetermined path relative to a workpiece.
`Additionally, the basic components described above are
`often used in conjunction with a host computer or program(cid:173)
`mable logic controller (PLC). The host computer or PLC
`allows the use of a high-level programming language to
`generate control commands that are passed to the controller.
`Software running on the host computer is thus designed to
`simplify the task of programming the controller.
`Companies that manufacture motion control devices are, 55
`traditionally, hardware oriented companies that manufacture
`software dedicated to the hardware that they manufacture.
`These software products may be referred to as low leVel
`programs. Low level programs usually work directly with
`the motion control command language specific to a given 60
`motion control device. While such low level programs offer
`the programmer substantially complete control over the
`hardware, these programs are highly hardware dependent
`In contrast to low-level programs. high-level software
`programs, referred to sometimes as factory automation 65
`applications, allow a factory system designer to develop
`application programs that combine large numbers of input!
`
`15
`
`35
`
`PRIORARf
`In the following discussions, a number of documents are
`cited that are publicly available as of the filing date of the
`present invention. With many of these documents. the Appli(cid:173)
`cant is not aware of exact publishing dates. The citation of
`these documents should thus not be considered an admission
`that they are prior art; the Applicant will take the steps
`necessary to establish whether these documents are prior art
`if necessary.
`As mentioned above, a number of software programs
`cUlTently exist for programming individual motion control
`devices or for aiding in the development of systems con(cid:173)
`taining a number of motion control devices.
`The following is a list of documents disclosing presently
`commercially available high-level software programs: (a)
`Software Products For Industrial Automation, iconics 1993;
`(b) The complete, computer-based automation tool (lGSS),
`Seven Technologies AlS; (c) OpenBatch Product Brief, pm,
`Inc.; (d) FIX Product Brochure, Intellution (1994); (e)
`Paragon TN!' Product Brochure, Intec Controls Corp.; (t)
`WEB 3.0 Product Brochure, 1Hhedral Engineering Ltd.
`(1994); and (g) AIMAX-WIN Product Brochure, TA Engi(cid:173)
`neering Co., Inc. The following documents disclose simu(cid:173)
`lation software: (a) Expeflune PID Tuning Software. Gerry
`40 Engineering Software; and (b) XANALOG Model NL-SIM
`Product Brochure, XANALOG.
`The following list identifies documents related to low(cid:173)
`level programs: (a) Compumotor Digiplan 1993-94 catalog,
`pages 10-11; (b) Aerotech Motion Control