throbber
(12) United States Patent
`US 6,941,543 B1
`(10) Patent N0.:
`Brown et al.
`
`@5)])ate(n’Patent: Sep.6,2005
`
`IJS006941543B1
`
`(54)
`
`(75)
`
`MOTION CONTROL SYSTEM AND
`METHOD
`
`Inventors: David W. Brown, White Salmon, WA
`(US); Jay S. Clark, Seattle, WA (US)
`
`(73)
`
`Assignee:
`
`Roy-G-Biv Corporation, Bingen, WA
`(US)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 586 days.
`
`(21)
`
`(22)
`
`Appl. No.:
`Filed:
`
`09/633,633
`
`Aug. 7, 2000
`
`Related U.S. Application Data
`
`Continuation of application No. 09/191,181, filed on NOV.
`13, 1998, now Pat. No. 6,577,291, which is a continuation
`of application No. 08/656,421, filed on May 30, 1996, now
`Pat. No. 5,867,385, which is a continuation—in—part of appli—
`cation No. 08/454,736, filed on May 30, 1995, now Pat. No.
`5,691,897.
`
`Int. Cl.7 .................................................. G06F 9/45
`U.S. Cl.
`....................................................... 717/107
`Field of Search ............................ 717/107; 700/56,
`700/28
`
`(63)
`
`(51)
`(52)
`(58)
`
`(56)
`
`5,392,207 A
`5,402,518 A
`5,412,757 A
`5,438,529 A
`5,450,079 A
`5,465,215 A
`5,493,281 A
`5,576,727 A
`
`2/1995 Wilson et a1.
`3/1995 Lowery
`5/1995 Endo
`8/1995 Rosenberg et a1.
`9/1995 Dunaway
`11/1995 Strickland et a1.
`2/1996 Owens
`11/1996 Rosenberg et a1.
`
`......... 709/222
`
`......... 345/701
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`EP
`EP
`EP
`EP
`EP
`GB
`JP
`W0
`W0
`W0
`
`7/1988
`0 275 826 A1
`8/1991
`0 442 676 A2
`8/1992
`0 281 427 B1
`10/1992
`508 912 A1
`2/1994
`0 583 908 A2
`12/1991
`2 244 896 A
`6/1983
`59—228473
`7/1992
`WO 92/11731
`4/1993
`WO 93/08654
`3/1995
`WO 95/07504
`OTHER PUBLICATIONS
`
`Payton et al., Intelligent Real—Time Control of Robotic
`Vehicles, Aug. 1991, ACM, pp. 49—63.*
`
`(Continued)
`
`Primary Examiner—John Chavis
`(74) Attorney, Agent, or Firm—Black Lowe & Graham
`PLLC
`
`References Cited
`
`(57)
`
`ABSTRACT
`
`.......... 709/213
`
`U.S. PATENT DOCUMENTS
`
`4,713,808 A
`4,767,334 A
`4,769,771 A
`4,809,335 A
`4,840,602 A
`4,846,693 A
`4,855,725 A
`4,857,030 A
`4,887,966 A
`4,897,835 A
`5,120,065 A
`5,168,441 A
`5,377,258 A
`
`12/1987 Gaskill et a1.
`8/1988 Throne et a1.
`9/1988 Lippmann et a1.
`2/1989 Rumsey
`6/1989 Rose
`7/1989 Baer
`8/1989 Fernandez
`8/1989 Rose
`12/1989 Gellerman
`1/1990 Gaskill et a1.
`6/1992 Driscoll et a1.
`12/1992 Onarheim et a1.
`12/1994 Bro
`
`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. A software system
`employs an application programming interface comprising
`component functions and a service provider interface com-
`prising driver functions. Code associated with the compo-
`nent functions relates these functions to the driver functions.
`
`Driver functions are separated into core and extended driver
`functions. All software drivers implement the core driver
`functions, and optionally implement the extended driver
`functions. Extended driver functionality may be obtained
`through a combination of core driver functions.
`
`16 Claims, 64 Drawing Sheets
`
`Object Interaction-Map
`32
`
`.IUnknown
`
`
`EXHIBIT 1025 IUnknown
`
`
`
`
`|XMC_xxxUDSPIE [ STREAM ]
`
`ABB Inc.
`
`Page 1 of 92
`
`Page 1 of 92
`
`

`

`US 6,941,543 B1
`
`Page 2
`
`US. PATENT DOCUMENTS
`
`6,195,592 B1
`6,209,037 B1
`6,216,173 B1
`6,219,032 B1
`6,219,033 B1
`6,232,891 B1
`6,243,078 B1
`6,246,390 B1
`6,252,579 B1
`6,252,853 B1
`6,259,382 B1
`6,271,833 B1
`6,278,439 B1
`6,285,351 B1
`6,288,705 B1
`6,292,170 B1
`6,292,174 B1
`6,292,712 B1
`6,292,714 B1
`6,300,936 B1
`6,300,937 B1
`6,304,091 B1
`6,310,605 B1
`6,317,116 B1
`6,343,349 B1
`6,353,850 B1
`6,366,272 B1
`6,366,273 B1
`6,374,255 B1
`6,401,005 B1
`6,470,377 B1
`6,480,896 B1
`6,519,646 B1
`6,542,925 B2
`2001/0020944 A1
`2001/0032268 A1
`2002/0052939 A1
`2002/0165627 A1
`2002/0177453 A1
`2003/0069998 A1
`
`................ 700/83
`
`2/2001 Schuler et al.
`3/2001 Brown et 81.
`4/2001 Jones et 81.
`......... 345/157
`4/2001 Rosenberg et al.
`......... 345/157
`4/2001 Rosenberg et al.
`5/2001 Rosenberg ................... 341/20
`
`6/2001 Rosenberg
`. 345/161
`6/2001 Rosenberg .................. 345/156
`6/2001 Rosenberg et al.
`......... 345/157
`
`6/2001 Ohno
`.370/242
`6/2001 Rosenberg ................... 341/20
`8/2001 Rosenberg et al.
`......... 345/701
`
`8/2001 Rosenberg et al.
`345/157
`............... 345/156
`9/2001 Chang etal.
`9/2001 Rosenberg et al.
`......... 345/701
`
`.. 345/156
`9/2001 Chang et al.
`......
`.............. 345/157
`9/2001 Mallettetal.
`9/2001 Bullen ........................ 700/245
`
`.. 700/245
`9/2001 Okabavashi
`.
`................ 345/156
`10/2001 Braun et al.
`10/2001 Rosenberg .................. 345/156
`
`10/2001 Shahoian et al.
`324/662
`10/2001 Rosenberg .................. 345/157
`11/2001 Rosenberg et al.
`......... 345/145
`
`.. 711/154
`1/2002 Braun et al.
`.......
`................. 709/203
`3/2002 Wies et al.
`4/2002 Rosenberg et al.
`......... 345/156
`
`.. 345/156
`4/2002 Rosenberg et al.
`............. 707/102
`4/2002 Peurach et al.
`6/2002 Schwarz et al.
`709/400
`
`10/2002 Sevcik et al.
`.. 709/201
`............... 709/231
`11/2002 Brown et al.
`2/2003 Gupta et al.
`................ 709/229
`
`.. 709/208
`4/2003 Brown et al.
`............... 345/474
`9/2001 Brown et al.
`10/2001 Brown et al.
`............... 709/230
`5/2002 Lee .............
`709/223
`
`................. 700/56
`11/2002 Brown et al.
`11/2002 Chen et al.
`................. 455/466
`4/2003 Brown et al.
`............... 719/310
`
`OTHER PUBLICATIONS
`
`Y. Katayama, Y. Nanjo and K. Shimokura; AMotion Control
`.
`.
`.
`.
`.
`SyStem.W1th Event—DING“. MOHOIl—MOdule SWHChmg
`Mechanism for Robotic Manipulators; 1993; IEEE; US.
`Toshihiro Matsui et al; An Event—Driven Architecture for
`Controlling Behaviors of the Office Conversant Mobile
`Robot, Jle—Z; 1997; IEEE; U.S.
`.
`.
`.
`HOW to Write and Use ACtheX Controls for Microsoft
`Windows CE 3.0; Microsoft Windows Website; Aug. 16,
`2002; U.S. ms—help://MS.MSDNQTR.2002JAN.1033/
`dnce30/html/activex30.htm.
`Notes on Implementing an Ole Control Container; Aug. 16,
`2002; U5;
`Ins—help”MSMSDNQTRZOOZJAN-1033/
`dnaxctrl/html/msdnicontcntr.htm.
`What OLE is Really About; Microfost OLE (General)
`Technical Articles; microsoft website; Aug. 16, 2002; U.S.;
`_
`.
`EzdflelggfiiiZ/EENQTR‘ZOOZJAN‘1033/dn016gen/html/
`*
`'
`'
`Platform SDK: COM; Categorizing by Component Capa-
`bilities; Microsoft Website; Aug. 16, 2002; U.S.; ms—help://
`MS.MSDNQTRQIOOZJAN.1033/C0m/C0mpicati3jqnhtm.
`Bradley Bargen and Peter Donnely; Inside Direct X—in
`Depth TeChnlqueS for DeVelOPlng High-Performance Mul-
`timedia ApplicatiOHS; 1988; Chapters 1, 18, 19, 20, and
`22—27; Microsoft Press; US.
`
`Page 2 of 92
`
`~~~~~~~~~ 345/161
`
`~~~~~~~~~ 345/161
`
`1/1997 Bro
`55969994 A
`2/l997 Chni et al
`5,600,373 A
`3/l997 Lebensfeld et al-
`5,607,336 A
`4/l997 Steehrnann etal-
`5617528 A
`4/1997 Rosenberg .................. 345/739
`5,623,582 A
`6/l997 Tong
`5,636,994 A
`7/1997 Aldred et al
`5,652,866 A
`8/1997 lani
`5,655,945 A
`9/1997 Kohiyarna et al
`5,666,161 A
`9/1997 Yasuhara et al
`59670992 A
`5,691,897 A * 11/1997 Brown et al.
`................. 700/56
`
`5,691,898 A
`ll/l997 Rosenberg etal-
`~~
`345/701
`~~~~~~~~~ 345/156
`5,701,140 A
`12/l997 Rosenberg et al
`5707289 A
`1/1998 Watanabe et al
`5,733,131 A
`3/1998 Park
`5734373 A
`3/1998 Rosenberg et al
`5737523 A
`4/1998 Callaghan etal-
`5,739,811 A
`4/1998 Rosenberg et al
`5,746,602 A
`5/1998 Kikinis
`5,764,155 A
`6/1998 KertesZ et al-
`5,790,178 A
`8/1998 Shibata et al
`5,800,268 A
`9/1998 Molniek
`5,801,946 A
`9/1998 Nissen et al
`5,818,537 A
`10/1998 Enokida et al
`5,821,920 A
`10/1998 Rosenberg et al
`5,821,987 A
`10/1998 Larson
`5,822,207 A
`10/1998 Hazarna et al-
`5,825,308 A
`10/1998 Rosenberg ................... 341/20
`5,828,575 A
`10/1998 Sakai
`5,846,132 A
`12/1998 lunkin
`5,848,415 A
`12/1998 Guck .......................... 707/10
`5,852,441 A * 12/1998 Nakajima et al.
`........... 345/866
`5,855,483 A
`1/1999 Collins et al
`5,867,385 A
`2/l999 Brown et al-
`5,873,765 A
`2/l999 Riikin et al
`5,889,670 A
`3/1999 Sehnler et al ~~~~~~~~~~~~~~~~ 700/83
`5,889,672 A
`3/1999 Sehnler et al-
`-------------- 345/702
`5,890,963 A
`4/l999 Yen
`5,907,704 A
`5/1999 Gudmundson et 81.
`5,907,831 A
`5/1999 LotVin et 211.
`5,914,876 A
`6/1999 Hirai
`
`~~~~~~~~~ 345/156
`
`......... 709/203
`......... 345/161
`
`7/1999 Helmessey et al'
`5’920’476 A
`7/1999 Guido etal.
`5,924,013 A
`9/1999 Rosenberg etal.
`5,956,484 A
`9/1999 Rosenberg et a1.
`5,959,613 A
`9/1999 de la Huerga
`5,960,085 A
`11/1999 Danie“ el 91-
`59779951 A
`......... 345/157
`2/2000 Rosenberg et al.
`6,020,876 A
`......... 345/156
`2/2000 Rosenberg et al.
`6,028,593 A
`3/2000 Joseph ................
`709/228
`6,038,603 A
`
`..
`4/2000 Rosenberg et al.
`345/156
`6,046,727 A
`......... 345/701
`5/2000 Rosenberg et al.
`6,057,828 A
`
`5/2000 Rosenberg ...........
`.. 341/20
`6,061,004 A
`33888 E35312:rg et al’ """"" 345/145
`2:83:32: 2
`8/2000 Schena etal.
`.............. 345/157
`6,100,874 A
`8/2000 Govindaraj et a1.
`6,101,425 A
`......... 709/203
`8/2000 Rosenberg etal.
`6,101,530 A
`33888 $51901)“: elt al~ ~~~~~~~~ 31289625;
`2,1329%: 2
`1es e a .
`.................
`,
`,
`10/2000 Rosenberg et al.
`..
`.. 345/163
`6,128,006 A
`10/2000 Peurach et al.
`............. 707/102
`6,131,097 A
`6,139,177 A * 10/2000 Venkatraman et al.
`........ 700/83
`6,144,895 A
`11/2000 Govindaraj et a1.
`6,147,647 A
`11/2000 Tassoudjietal.
`........... 343/785
`2:126:72: 2
`nggg :f:n:t:tl'al:":....
`325/121
`6,169,540 B1
`1/2001 Rosenberg et al.
`..
`345/701
`6,173,316 B1
`1/2001 De Boor et al.
`.....
`709/218
`6,191,774 B1
`2/2001 Schena et al.
`.............. 345/163
`
`
`
`Page 2 of 92
`
`

`

`US 6,941,543 B1
`
`Page 3
`
`Peter Kovach; Inside Direct3D—The Definitive Guide for
`Real—Time 3D Power and Performance for Microsoft Win-
`
`dows; 2000; Chapters 1, 7, and 15; Microsoft Press; US.
`M. Farsi and M. Barbosa; CANopen Implementation—
`Applications to Industrial Networks; 2000; Chapters 1, 2
`and 3; Research Studies Press Ltd.; England and US.
`Wolfhard Lawrenz; CAN System Engineering—From
`Theory to Practical Applications; 1997; Chapters 1, 2.1, 2.2,
`3.2 and 4.1; Springer—Verlag New York, Inc.; US.
`Allen—Bradley; CNCnet Software Library; Oct., 1992; Pub-
`lication 8000—6.1.1; U.S.
`Robert Bosch GmbH; CAN Specification; Sep., 1991; Ver-
`sion 2.0.
`
`SISCO, Inc.; Overview and Introduction to the Manufactur-
`ing Message Specification (MMS); 1994—1995; Revision 2;
`Systems Integration Specialists Company,
`Inc.; Sterling
`Heights, Michigan, US.
`ISO—9506—1 Industrial Automation Systems—Manufactur-
`ing Message Specification—Part 1: Service definition; Aug.
`2000; pp. i—22; ISO/IEC; Switzerland.
`ISO—9506—2 Industrial Automation Systems—Manufactur-
`ing Message Specification—Part 2: Protocol specification;
`Aug. 2000; pp. i.—6; ISO/IEC; Switzerland.
`SISCO, Inc.; MMS—EASE; Jan., 1996; Systes Integration
`Specialists Company, Inc.; Sterling Hieghts, Michigan, US.
`ANSI/EIA—484—A Electrical and Mechanical
`Interface
`Characteristics and Line Control Protocol Using Commu-
`nication Control Characters for Serial Data Link Between a
`
`Direct Numerical Control System and Numerical Control
`Equipment Employing Asynchronous Full Duplex Trans-
`mission; Jun., 1995; Electronic Industries Association; US.
`ISO/IEC 7498—1 Information Technology—Open Systems
`Interconnection—Basic Reference Model: The Basic Model;
`Nov., 1994; US.
`ISO/IEC 7498—3 Information Technology—Open Systems
`Interconnection—Basic Reference Model: Naming and
`Addressing; Apr., 1997; US.
`Todd J. Schuett; The Benefits and Data Bottlenecks of High
`Speed Milling; Aug., 1995; Conference Paper Presented at
`Southeastern Michigan Chapter American Mold Builders
`Association; Creative Technology Corporation; US.
`Todd J. Schuett; “The Ultimate DNC; Direct CNC Network-
`ing (DCN)”; Modern Machine Shop; Jan., 1996; Creative
`Technology Corporation; US.
`Todd J. Schuett; Advanced Controls for High Speed Milling;
`Conference Paper Presented at
`the SME “High Speed
`Machining”; May 7—8, 1996; Creative Technology Corpo-
`ration; U.S.
`Leitao, Machado & Lopes; “A Manufacturing Cell Integra-
`tion Solution”; Paper Developed at CCP as a Part of the
`ESORIT 5629 Project; Oct., 1995.
`Mitsubishi Electric; Mitsubishi Electric Advance; Program-
`mable Logic Controllers Edition; Sep., 1996; vol. 76; Mit-
`subishi Electric Corporation; Tokyo.
`Farsi, M.; “Flexible and Reliable Robotics Cells in Factory
`Automation”; Proceedings of the IEEE International Con-
`ference on Systems, Man and Cybernetics, France; 1993; pp.
`520—525.
`
`Chu & Wang; “Development of a Practical SFC System for
`CNC Machine Shop”; International Conference on Data and
`Knowledge Systems for Manufacturing and Engineering;
`May 1994; pp. 362—367, vol. 1; pp. xx+745, vol. 2.; Chinese
`Univ.; Hong Kong.
`
`Farsi, M.; “Device Communication for Flexible Manufac-
`turing:—A New Concept”; Ninth International Conference on
`System Engineering, UK; 1994; pp. 328—334.
`Farsi, M.; “A Production Cell Communication Model in
`Factory Automation Using the Controller Area Network”;
`Proceedings of XII International Conference on Systems
`Science, Poland; 1995; pp. 90—95.
`Marcos & Orive; “A New Solution for Integrating Control
`Devices Involved in Computer Integrated Manufacturing”;
`UKACC International Conference on Control ’96 (Confer-
`ence Publication No. 427); Sep., 1996; pp. 485—490, vol. 1;
`UK.
`
`Farsi, M. “CANopen: The Open Communications Solu-
`tion”; Proceedings of Fieldbusses and Communications for
`Drives and Motion Control, Drives and Control 1996 Exhi-
`bition & Conference, UK; 1996; pp. 112—116.
`Wright et al.; “Open Architecture Manufacturing: The
`Impact of Open—System Computers on Self—Sustaining
`Machinery and Machine Tool Industry”; 7 pages; pp.
`Altintas et al.; “Design and Analysis of a Modular CNC
`System”; pub. Mar. 4, 1990; 12 pages; Elsevier Science
`Publishers; pp. 305—316.
`Robert Anderson; “Smart: A Modular Architectur for Robot-
`ics and Teleoperation”; pub. 1993;
`IEEE; 6 pages; pp.
`416—421.
`
`Microsoft; “Object Linking and Embedding 2.0 Back-
`grounder”; pub. Sep. 1993; 15 pages; pp. 1—15.
`Microsoft; “Microsoft OLE Today and Tomorrow: Technol-
`ogy Overview”; pub. Dec. 1993; 9 pages; pp. 1—9.
`Pritschow et al.; “Open System Controllers—A Challenge
`for the Future of the Machine Tool Industry”; pub Jan. 14,
`1993; CIRP; 4 pages; pp. 449—452.
`WEB 3.0 Product Brochure; Trihedral Engineering Ltd.;
`pub. 1994; 6 pages.
`Chen et al.; “Computer Numerical Control: Essentials in
`Programming and Networking”; pub. 1994; Delmar Pub-
`lishers, Inc.; 28 pages; Part 5, Chapter 27; pp. 824—848.
`Chu et al.; “Development of a Practicle SFC System for
`CNC Machine Shop”; pub. 1994; 5 pages; 362—367.
`Microsoft; “The Microsoft Object Technology Strategy”;
`pub. Mar. 1994; 33 pages; pp. 1—33.
`Microsoft; “Open Systems: Technology Leadership and
`Collaboration”; pub. Mar. 1994; 15 pages; pp. 1—15.
`William F. Ford; “What
`is an Open Architecture Robot
`Controller?”; pub. Aug. 16, 1994; IEEE Control Systems
`Society; 6 pages; pp. 27—32.
`“Requirements of Open, Modular Architecture Controllers
`for Applications in the Automotive Industry”; pub. Dec. 13,
`1994; Version 1.1; 13 pages; pp. 1—13.
`Fedrowitz; “IRL—Based Expansion of the Commonly Used
`High—Level Language C for Robot Programming”; pub.
`Oct. 1995; 5 pages.
`John Jackman; “Robotic Control Using Sequential Function
`Charts”; pub. 1996; SPIE; 9 pages; pp. 120—128.
`McGraw et al.; “A Friendly Command, Control, and Infor-
`mation System for Astronomy”; pub. 1996; ASP Conference
`Series; 12 pages; pp. 356—367.
`Proctor et al.; “Validation of Standard Interfaces
`Machine Control”; pub. 1996; 6 pages; pp. 659—664.
`Sperling et al.; “Enabling Open Control Systems—An Intro-
`duction to the OSACA System Platform”; pub. May 1996;
`8 pages; pp. 1—8.
`“NEMI Low Cost Controller Project”; pub. Dec. 1996;
`NEMI; 392 pages; pp. 1—392.
`
`for
`
`Page 3 of 92
`
`Page 3 of 92
`
`

`

`US 6,941,543 B1
`Page 4
`
`“Technologies Enabling Agile Manufacturing (TEAM)
`Intelligent Closed Loop Processing”; pub. Jan. 11, 1996; 30
`pages; pp. 1—30.
`“Open, Modular Architecture Controls at GM Powertrain—
`Technology and Implementation”; pub. May 14, 1996; Ver-
`sion 1.0; GM Powertrain Group Manufacturing Engineering
`Controls Council; 39 pages; pp. 1—39.
`Marcos et al.; “A New Solution for Integrating Control
`Devices Involved in Computer Integrated Manufacturing”;
`pub. Sep. 2, 1996; IEE; 6 pages; pp. 485—490.
`Proctor et al.; “Open—Architecture Controllers”; pub. Jun.
`1996; IEEE; 5 pages; pp. 60—64.
`Szabo et al.; “Validation Results of Specifications for
`Motion Control Interoperability”; pub. Sep. 1997; 11 pages;
`pp. 166—176.
`Feng et al.; “Distributed Control of a Multiple Tethered
`Mobile Robot System for Highway Maintenance and Con-
`struction”; pub. Nov. 1997, 10 pages; pp. 383—392.
`Lutz et al.; “OSACA—The Vendor Neutral Control Archi-
`tecture”; pub. Dec. 1997; 10 pages.
`Sperling et al.; “Designing Applications for an OSACA
`Control”; pub. Nov. 16, 1997; 5 pages.
`Chang et al.; “Development and Implementation of An
`Application of an Application Programming Interface for
`PC/DSP Based Motion Control System”; Pub. 1998; 12
`pages; p. 94—105.
`Morales et al.; “A Generalised Software Control System for
`Industrial Robots”; pub. 1998; AMC; 6 pages; pp. 411—416.
`Muir et al.; “A Three—Layer Workcell Control Architecture
`Design”; pub. May 1998; IEEE; 7 pages; pp. 1185—1191.
`Muir et al.; “Mechatronic Objects for Real—Time Control
`Software Development”; pub. Nov. 1998; SPIE; 15 pages;
`pp. 251—265.
`Leu et al.; “A Telemanufacturing Workcell Over the Inter-
`net”; pub. Nov. 1998; SPIE; 8 pages; pp. 230—237.
`
`Michaloski et al.; “A Framework for Component—Based
`CNC Machines”; pub. Nov. 1998; SPIE; 12 pages; pp.
`132—143.
`
`Emilio Morales; “GENERIS: The EC—JRC Generalised
`Software Control System for Industrial Robots”; pub. 1998;
`University Press; vol. 26; 7 pages; pp. 26—33.
`Mizukawa et al.; “De—Facto Standard API for Open and
`Networked Industrial Robots”; pub. Oct. 1999; 8 pages; pp.
`455—462.
`
`Cho et al.; “A Compact/Open Network—Based Controller
`Incorporating Modular Software Architecture for a Human-
`iod Robot”; pub. Apr. 19, 1999; Kluwer; 15 pages; pp.
`341—355.
`
`Nilsson et al.; “Integrated Architecture for Industrial Robot
`Programming and Control”; pub. May 20, 1999; Elsevier
`Science B.V.; 22 pages; pp. 205—226.
`Valera et al.; “Interactive On—line Evaluation of Robot
`Motion Control”; Aug. 2, 1999;
`IEEE; 5 pages; pp.
`1039—1043.
`
`Natale et al.; “Robust Hybrid Force / Position Control with
`Experiments on an Industrial Robot”; pub. Sep. 19, 1999; 5
`pages; pp. 956—961.
`
`Mizukawa et al.; “ORiN: Open Robot Interface for the
`Network, A Proposed Standard”; pub. May 2000; MCB
`University Press; 7 pages’ pp. 344—350.
`
`Erol et al.; “Open System Architecture Modular Tool Kit for
`Motion and Machine Processing Control”; pub. Sep. 2000;
`IEEE/ASME; 11 pages; pp. 281—291.
`
`Ge et al.; “A One—Stop Solution in Robotic Control System
`Design”; pub. Sep. 2000; IEEE; 14 pages; pp. 42—55.
`
`* cited by examiner
`
`Page 4 of 92
`
`Page 4 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 1 0f 64
`
`US 6,941,543 B1
`
`FIG.
`
`iA
`
`IO
`I2 \
`
` \
`
`
`TO/FROMFIGSIB
`
` -UNKNOWN
`
`
`STANDARD OLE INTERFACES °
`
`
`CORE INTERFACES '
`
`
`
`EXTENDED INTERFACES -
`
`
`EXTENDED UI INTERFACES '
`
`
`CODE GENERATION INTERFACES '
`VENDOR SPECIFIC INTERFACES
`
`
`MOTION
`CONTROL
`DRIVER A
`HARDWARE
`A
`LANGUAGE
`DEPENDENT
`
`
`
`
`TO/FROM FIG.
`
`ID
`
`Page 5 of 92
`
`Page 5 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 2 0f 64
`
`US 6,941,543 B1
`
`FIG.
`
`IE3
`
`Sr—
`
`38
`
`
`- UNKNOWN
`
` ' STANDARD OLE
`DRIVER
`INTERFACES
`
`5“—'—3 ADMINISTRATOR
`DRIVER
`
`
`- CUSTOM OLE
`CPL
`
`ADMIN
`
`
`INTERFACES
`
`
`
`32
`
`IUKNOWN
`
`
`
`
`: DDE SERVER
`
`
`ITO/FROMFIG.IA
`
`STANDARD OLE INTERFACES °
`
`
`MOTION
`GENRAI. INTERFACES '
`CONTROL
`CODE GENERATION INTERFACES '
`
`
`COM PONENT
`DIAGNOSTTC INTERFACES '
`
`;______
`
`35
`
`TO/FROMFIG.IC
`
`
`STANDARD OLE INTERFACES '
`EXTENDED INTERFACES -
`
`
`
`EXTENDED UI INTERFACES '
`DRIVER STUB
`
`
`§—__._
`’—
`
`36
`
`-UNKNOWN
`i
`MOTION
`STANDARD OLE INTERFACES
`CORE INTERFACES - ORR/ERR
`
`
`EXTENDED INTERFACES - HARDWARE
`
`
`EXTENDED UI INTERFACES .
`B
`CODE GENERATION INTERFACES -
`LANGUAG
`
`
`VENDOR SPECIFIC INTERFACES - DEPENDENET
`
`30b
`
`TO/ FROM FIG. IE
`
`Page 6 Of 92
`
`Page 6 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 3 0f 64
`
`US 6,941,543 B1
`
`FIG.
`
`IC
`
`5—‘____
`
`TO/FROMFIG.IB
`
`5—“—
`
`MOTION
`STANDARO OLE INTERFACES -
`CONTROL
`CORE INTERFACES
`SEQEECIACRE
`EXTENDED INTERFACES -
`c
`EXTENDED UI INTERFACES -
`CODE GENERATION INTERFACES - LANGUAGE
`VENDOR SPECIFIC INTERFACES - DEPENDENT
`
`
`
`30c
`
`TO/FROM FIG.
`
`IF
`
`Page 7 of 92
`
`Page 7 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 4 0f 64
`
`US 6,941,543 B1
`
`IUNKNOWN
`
`IA
`
` TO/FROM FIG.
`
`
`
`MOTION CONTROL
`TEXT FILE
`
`
`STREAM
`MOTION CONTROL
`
`PC BUS
`TEXT
`
`
`COMMUNICATION
`STREAM
`
`
`
`PROTOCOL
`PC BUS
`
`
`
`COMMUNICATION
`PROTOCOL
`
`
`IUNKNOWN
`
`
`'iIIIIIIITI_
`
`I Fifi
`\wnfi‘I‘FEIBLVI/éfii -b
`
`
`
`
`I80
` 200
`
`_M
`
`EC HAN ICAL
`SYSTEM A
`
`
`
`TO/FROMFIG.IE
`
`MOTION CONTROL
`DEVICE A
`
`Page 8 of 92
`
`Page 8 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 5 0f 64
`
`US 6,941,543 B1
`
`FIG.
`
`IE
`
`TO/FROM FIG.
`
`IB
`
`IUNKNOWN
`
`
`
`
`
`ISTREAM '
`MOTION CONTROL
`PC BUS
`STREAM
`PC BUS
`COMMUNICATION
`PROTOCOL
`
`28b
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`9
`1—...—
`E
`
`E
`3
`LL
`8
`I—j____
`
`[Sb
`
`f—-_
`Illlllllll
`I
`
`
`
`I
`MECHANICAL
`
`SYSTEM A
`
`L;-
`-
`E
`
`IIa g
`
`5:
`
`
`KL
`C
`E3
`
`
`HARDWARE
`CONTROLLER B
`
`MOTION CONTROL
`DEVICE B
`
`Page 9 of 92
`
`Page 9 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 6 0f 64
`
`US 6,941,543 B1
`
`FIG. IF
`
`TO/FROM FIG.
`
`IC
`
` IUNKNOWN
` MOTION CONTROL
`ISTREAM -
`
`HARDWARE C
`PC BUS STREAM
`
`
`SPECIAL PC BUS
`COMMUNICATION
`PROTOCOL FOR
`HARDWARE C
`
`28c
`
`MW“—
`
`L5
`:5—*—-
`
`14
`
`E
`8
`
`LL
`
`q
`HARDWARE
`
`
`$-—..__ b
`
`I
`MECHANICAL
`
` 18c
`
`IESC
`
`20c
`
`SYSTEM A
`
`MOTION CONTROL
`DEVICE C
`
`Page 10 of 92
`
`Page 10 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 7 0f 64
`
`US 6,941,543 B1
`
`FIG- 2 Module Interaction-Map
`
`VCH- APPLICANON
`
`..............................................
`
`. [Unknown
`
`IXMC_xxxAPI
`
` :
`i BCW APR. etc.
`
` . IUnknown
`
`
`
`
`IXMC_xxxAPI
`
`,,,,,,,
`
`.-
`
`.-
`
`COMPONENT
`
`34-
`
`
`IXMC_UDxxxSPI
`
`. IUnknown
`
`IXMC_xxxSPl
`
`Page 11 of 92
`
`Page 11 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 8 0f 64
`
`US 6,941,543 B1
`
`WET.............
`
`VC++ APPLICATION
`
`lIln
`
`VB APPLICATION
`
`
`FIG. 3 Objectlnteraction-Map 32
`
`
`
`IXMC_xxxAP|
`
`' IUnknown
`
`DRIVER
`
`ADMIN.
`
`
`
`
`
`26
`I
`
`E BCW APP.. etc.
`
`
`
`.
`
`....
`
`."‘
`
`....
`
`.-'
`
`....
`
`....
`
`.-'
`
`.~"
`
`
`
`CCmpntDisp
`
`
`
`34a
`
`34c
`
`
`
`
`
`34d
`
`I. C:Drivengr
`
`CDriver
`
`CDrIverAdmin
`
`34b
`
`49
`
`
`
`
`
`
`CUnitMapper
`
`IXMC_UDxxxSPIo
`
`36
`
`' IUnknown
`
`DRIVER
`STUB
`
`’IUnknown
`
`IXMC_xxxSPI 0
`
`DRIVER
`
`30
`
`Page 12 of 92
`
`Page 12 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 9 0f 64
`
`US 6,941,543 B1
`
`FIG. 4 Scenario Map - Initialization
`|XMC_xxxAPI o
`
`
`
`olUnknown
`
`
`
`
`
`
`
`
` CDriver
`—
`
`I
`0
`o lUnknown
`
`e
`
`IXMC_UDXXXSP| o
`
`DRIVER
`STUB
`
`36
`
`.IUnknown
`
`iXMC_XXXSP[ O
`
`DRIVER
`
`30
`
`Page 13 of 92
`
`Page 13 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 10 0f 64
`
`US 6,941,543 B1
`
`FIG - 5 Scenario Map - Core SP! Operation
`
`I CCmp‘ntDisp
`
`34a:
`
`CDriver
`
`ngDrivengr
`
`340
`
`,
`
`.lUnknown
`
`IXMC~_xxxSPI.
`
`DRIVER
`
`30
`
`Page 14 of 92
`
`Page 14 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 11 0f 64
`
`US 6,941,543 B1
`
`
` """
`
`."
`
`.u
`
`_.--
`
`n"
`
`."'
`
`,u-
`
`PCS Measurements
`olUnknown
`
`
`
`34a
`
`34c
`
`5 -—
`34d @
`M08 __4:
`Measurements
`
`
`l CCmpntDisp
`
`01
`I (3Drivengr
`i
`
`
`
`e‘
`
`IXMC~UDxxxSPl .
`
`[Unknown
`
`'
`DRIVER
`STUB
`
`36
`
`.IUnknown
`
`IXMC_xxxSPI .
`
`DRIVER
`
`30
`
`Page 15 of 92
`
`Page 15 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 12 0f 64
`
`US 6,941,543 B1
`
`FIG 7 Scenario-Map - Extended SPI Operation
`
`
`
`CUnitMapper
`
`
`
`
`
`
`o lUnknown
`
`lXMC_UDXXXSPIo
`
`DRIVER
`
`STUB
`
`36
`
`Page 16 of 92
`
`Page 16 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 13 0f 64
`
`US 6,941,543 B1
`
`FIG - 8 Scenario-Map — Clean-up.
`
`VB APPLICATION
`
`VC++ APPLICATION
`
`cw APP, etc.
`
`
`
`
`
`
`

`
`
`
`o IUnknown
`
`IXMC~UDXXXSPI o
`
`DRIVER
`
`STUB
`
`36
`.IUnknown
`
`
`
`
`
`
`IXMC_xxxSPI o
`
`DRIVER
`
`30
`
`
`
`Page 17 of 92
`
`Page 17 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 14 0f 64
`
`US 6,941,543 B1
`
`F IG . 9 Interface-Map
`
`IUnknown
`
`lCComponentOjbect
`
`.
`Standard OLE 2.0 Interface
`(implemented by MFC)
`
`Standard OLE 2.0 Interface
`(impI. by MFC and AFX basecode)
`
`ICIassFactory .
`
`IDispatch .
`
`Standard OLE 2.0 Interface
`(impIt by MFC and CIassWizard
`generated code)
`
`AP. Interfaces -----------------------
`
`IXMC__API_1 .
`
`
`
`
`IXMC_API_2 .
`XMCAF’I Interface #2
`
`
`
`
`
`
`
`
`XMCAPI Interface #1
`
`O O O
`
`|XMC_API_n .
`
`XMCAPI Interface #n
`
`Page 18 of 92
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 18 of 92
`
`

`

`US. Patent
`
`S
`
`e
`
`SU
`
`1B345,1M,
`
`
`
`60:62:31,:bmSmoEn:
`
`fl
`
`5oo1lIIaN22.35%Nx520032
`hIISWesuofiozFx5200.2x.
`
`cmofimmhzaxme>moMxI.WIlAm.50:52cxbmSmo
`
`6.NooEmémckaxwioNmoEmmpzmcxmeiow50152:xbfiEovEofimmkz.:xbfiiov
`
`
`
`filemaEmOmanmnozx2:65s.xHma025m--vooM9.2.8:52cm>mosea0o
`6,wasEwozx5E8%5250
`
`moaozpmsucxupxmfio:58Hmemofimmpzficxuhxmfio:58VSzfimufimmhzixmia6amon.2_d<§mms§m>mo6.5m
`
`
`
`
`
`Or.07..
`
`osflamszso
`
`Page 19 of 92
`
`Page 19 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 16 0f 64
`
`US 6,941,543 B1
`
`32
`
`IXMC_xxxAPI
`
`DRIVER
`
`FIG.11 Module Interaction-Map
`olUnknown
`
`
`
`ADMIN.
`
` 34.
`
`
`.lUnknown
`
`'XMC—XXXAP‘O- OMPONENT
`
`42
`
`
`
`
`DRIVER
`EXMC_xxxSPl
`SREGISTRW’>
`
`
`30
`
`. lUnknown
`
`
`
`. IUnknown
`
`
`IXMC_xxxUDSPl
`STREAM
`
`
`Page 20 of 92
`
`Page 20 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 17 0f 64
`
`US 6,941,543 B1
`
`FIG-12 Objectlnteraction-Map
`
`32
`
`.lUnknown
`
`IXMC_XXXAP| .
`
`DRIVER
`ADMIN.
`
`34
`
`‘XMC—XXXAP'O
`
`4
`
`OMPONENT
`
`o IUnknown
`
`
`IXMC_>oo<SPl
`DRIVER
`...............................__2
`REGISTRYS
`308
`.................................... 300
`30
`
`.l nknown
`
`CSt ea Mg
`
`30,:
`
`CComma dMg
`
`—
`CDrierisp
`
`
`
`
`
`
`30k
`3
`
`
`CCo mandList
`
`.
`30!
`
`C omem-
`
`
`
`
`CResponseList
`'J
`
`[Unknown
`
`lXMCZuxxxU DSPI
`
`Page 21 of 92
`
`Page 21 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 18 0f 64
`
`US 6,941,543 B1
`
`FIG.13 Scenario-Map - Registration
`
`32
`
`. [Unknown
`
`
`
`IXMC_xxxSPl
`
`42
`
`REGISTRy}<...............
`
`FIG 14 Scenario-Map - lnit. by Driver Admin.
`
`32
`
`. lUnknown
`
`
`
`Page 22 of 92
`
`Page 22 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 19 0f 64
`
`US 6,941,543 B1
`
`FIG 15 Scenario-Map - Adding a Stream
`
`32
`IXMCfixxxAPI
`
`. lUnknown
`
`
`
`CLSID
`(of the stream)
`
`. lUnknown
`
`4
`
`W ........................(21.8030
`...............
`(of the streamfi e
`30.
`
`399..
`
`I
`CSt eamM <
`
`—
`9 W
`
`FIG-16 Scenario-Map - Query Operation
`
`. [Unknown
`
`...-
`
`.....
`
`_________
`
` ........
`
`Page 23 of 92
`
`Page 23 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 20 0f 64
`
`US 6,941,543 B1
`
`FIG-17 Scenario-Map - Clean-Up by
`
`Drv. Admin.
`
`lXMC_xxxAPl
`
`42
`
`hm”
`
`32
`.lUnknown
`
`DRIVER
`
`ADMIN.
`
`lXMC_xxxspl .
`
`e
`
`. [unknown
`
`DRIVER
`
`309....
`. -
`CSt eamMg ‘
`
`30d
`
`9
`—
`CDrierisp
`
`~
`
`9
`
`FIG-18 Scenario-Map - lnit. by Component
`
`34
`
`.lUnknown
`
`lXMC_xxxAPI
`
` .lUnknown
`
`DRIVER
`
`IXMC HxxxSPI
`--------------------------------
`e
`..............................................30d
`30—o
`CStea M9"
`30f 9
`309
`CComma dMg 63m,
`lCCommandList '0 «9
`CResponseLIst
`
`30
`
`......
`
`
`
`
`CStream
`
`o .lUnknown
`
`lXMC_xxxUDSPI.
`
`STREAM
`
`28
`
`'1
`
`Page 24 of 92
`
`Page 24 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 21 0f 64
`
`US 6,941,543 B1
`
`FIG 19 Scenario~Map - Command Operations
`
`34 ‘
`
`IXMC_xxxAPI
`
`O-
`
`o lUnknown
`
`
`
`OMPONENT
`
`. IUnknown
`
`
`
`0 . lUnknown
`
`IXM :C_xxxUDSP|
`
`STREAM
`
`28
`
`‘
`
`Page 25 of 92
`
`Page 25 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 22 0f 64
`
`US 6,941,543 B1
`
`FIG- 20 Scenario-Map - Clean-up by
`Component
`
`34
`
`
`
`Q lUnknown
`
`
`
`|XMC_xxxAPIO
`
` OMPONENT
`
`lXMChxxxSPl .
`
`DRIVER
`
`..................................
`
`.9
`30
`30 .
`...................................
`30e
`_
`.
`CDriv-rDisp
`CSt ea M. =
`30f 9
`-
`CComma dMg 6
`309
`30
`.
`I CCoEEmandL15
`CResponseList
`
`
`
`._.
`
`Page 26 of 92
`
`
`
`’0 a
`
`30k
`
`6 . lUnknown
`
`IXMC,_xxxUDSPI .
`
`STREAM
`
`28
`
`Page 26 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 23 0f 64
`
`US 6,941,543 B1
`
`FIG - 21 Interface-Map
`. iUnknown
` CDriverObject
`
`
`Stan-oar o
`.l he ac-
`(implemented by MFC)
`
`
`
`annuar o
`.I n e ace
`ICIassFactory .
`(impl. by MPG and AFX basecode)
`
`
`SPI Core Interfaces ------------------
`
`StaticState
`
`
`
`iXMC_Derore_
`DynamicState O
`
`
`
`
`
`
`
`
`specific to the satic state used
`when working with motion control)
`
`
`
`
`tat, a ct er me me are
`
`hi :3 ize,
`a 0 er me me are
`specific to the dynamic state used
`when working with motion control)
`
`
`
`
`
`
`
`XMCSPI Core Interface #3
`
`o
`
`8
`XMCSPi Core Interface #n
`
`SP' Extended Interfaces -------------
`
`‘u 'emove, nae, naoe rm,
`Lock (all methods operate on strms
`
`XMCSPI Extended Interface #2
`
`o 8
`
`XMCSPI Extended Interface #n
`
`
`
`Page 27 of 92
`
`iXMC__Derore__
`
`iXMC_Derore_
`A
`SP|_3
`
`
`IXMC_DFVCore_
`SPi_n
`<
`
`iXMC_DrvExt_
`StreamMgmt
`(
`
`IXMCWDNEXL
`SPI_2
`c
`
`|XMC_DrvExt_
`SPLn
`C
`
`
`
`
`
`
`Page 27 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 24 0f 64
`
`US 6,941,543 B1
`
`FIG- 22 Module Interaction-Map
`
`IXMC_xxxAPl.
`-
`0 lUnknown
`
`DRIVER
`ADM
`IN'
`
`30
`
`' lUnknown
`
`lXMC_xxxSPlc
`
`DRIVER
`
`.
`
`42 IXMC_xxxUDSPI
`EGISTRY
`
`. lUnknown
`
`STREAM
`
`'44 DBG
`
`MONWOR
`
`
`
`-
`
`.1-
`
`SERIAL 1/0
`
`468
`
`460
`
`gv-m
`16farware
`
`Page 28 of 92
`
`Page 28 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 25 0f 64
`
`US 6,941,543 B1
`
`FIG. 23 Object Interaction-Map
`
`
`IWC_X)OCAP‘ .
`
`30
`
`0 lUnknown
`
`' IUnknown
`
`
`
`
`lXMCquPl
`
`~ DRIVER
`
`CStreamDisp —-> CRegistryMgr
`28
`
`2-d
`
`
`SERIAL l/O
`
`Page 29 of 92
`
`Page 29 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 26 0f 64
`
`US 6,941,543 B1
`
`FIG. 24 Scenario-Map - initialization
`
`' lUnknown
`
`
`
`Page 30 of 92
`
`Page 30 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 27 0f 64
`
`US 6,941,543 B1
`
`FIG. 25 Scenario-Map - Registration
`
`
`
`FIG. 26 Scenario—Map - Setup
`
`iUnknown
`
`
`
`Page 31 of 92
`
`Page 31 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 28 0f 64
`
`US 6,941,543 B1
`
`FIG. 27 Scenario-Map - Clean-up
`
`0 JUnknown
`
`
`
`Page 32 of 92
`
`Page 32 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 29 0f 64
`
`US 6,941,543 B1
`
`FIG. 29 Scenario-Map - Opening the Stream
`
` SERIAL [/0
`
`Page 33 of 92
`
`Page 33 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 30 0f 64
`
`US 6,941,543 B1
`
`FIG. 30 Scenario-Map - Writing Data
`
`30 ‘
`
`. [Unknown
`
`lXMC_xxxSP| O-
`
`DRIVER
`
`
`
` ‘1eSERIAL l/O
`
`Page 34 of 92
`
`Page 34 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 31 0f 64
`
`US 6,941,543 B1
`
`FIG. 31 Scenario-Map - Reading Data
`
` .: SERIAL i/O
`
`Page 35 of 92
`
`Page 35 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 32 0f 64
`
`US 6,941,543 B1
`
`FIG- 32 Scenario-Map - Clean-up (Drv)
`
`30
`
`' IUnknown
`
`IXMC_xxxSPI .
`
`DRIVER
`
`
`
`
`
`CStreamDifl
`
`20'
`
`9
`
`28f
`
`@
`
`23
`9
`CIGeHAL
`
`( D86
`ONITOR
`
`28i
`
`$NT3.5 @ $Wm95 9 $9Wm3
`
`SERIAL [/0
`
`Page 36 of 92
`
`Page 36 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 33 0f 64
`
`US 6,941,543 B1
`
`
`
`
`
`lClassFactory .
`
`ant-ar O
`
`.0 ne ace
`
`FIG. 33 Interface-Map
`
`° lUnknown
`lCStreamObject
`
` Stan-oar O .I ne ace
`
`
`(implemented by MFC)
`
`(lmpl. by MPG and AFX basecode)
`
`
`
`
`SPI - UnDocumented
`
`lXMC_Stream .
`
`
`
`lXMC_Streamlnit .
`
`‘ead, Write, Enable, Stat, lsEnable-
`
`
`
`nltialize, Open, Close, Setup,
`Stat, CreateStream
`
`
`
`FIG . 34 Module Interaction—Map.
`
`34 .lUnknown
`
`I
`
`lXMC_xxxSPl
`
`Page 37 of 92
`
`Page 37 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 34 0f 64
`
`US 6,941,543 B1
`
`FIG. 35 Object Interaction-Map
`34 .IUnknown
`
`
`lXMC_xxxAPl
`OMPONENT
`
`
`. [Unknown
`
`
`
`
`
`
`
`
`
`. lUnknown
`
`IXMC_><xxSPl
`
`DRIVER
`
`30
`
`‘
`
`Page 38 of 92
`
`
`
`35a
`
`CDriverStubl isp
`
`CSPIMgr
`
`36c
`
`35b
`
`Page 38 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 35 0f 64
`
`US 6,941,543 B1
`
`FIG- 36 Scenario-Map-|nitialization
`34
`.EUnknown
`
`(of DriveQ/
`
`
`
`CLSID
`
`of Driver)
`
`Page 39 of 92
`
`Page 39 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 36 0f 64
`
`US 6,941,543 B1
`
`FIG - 37 Scenario-Map - Operations
`
`.lUnknown 34
`OMPONENT
`
`IXMC_XXXAPI
`
`
`
`Page 40 of 92
`
`Page 40 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 37 0f 64
`
`US 6,941,543 B1
`
`FIG- 38 Scenario-Map-Clean-up
`
`34
`
`.lUnknown
`OMPONENT
`
`IXMC_xxxAPI
`
`
`
`IXMC_DrvExt
`_xxxSPl
`
`
`
`
`.- '0 '- n,-. '- n.
`
`..... 'n -,.c '—u.. a
`
`.v'
`
`
`
`Page 41 of 92
`
`Page 41 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 38 0f 64
`
`US 6,941,543 B1
`
`CDriverStubObject
`
`Standard OLE 2.0 Interfa =
`
`(Implemented b MFC)
`
`FIG. 39 Interface-Map
`o IUnknown
`
`
`
`
`
`
`Standard OLE 2.0 Interface
`
`ICIassFactoryI
`
`
`
`
`
`IXMC_DrvStub .
`
`
`
`
`
`
`
`
`
`
`(Impl. by MFC and AFX basecode)
`
`Stl‘b SPECific Interfaces """""""
`
`RegisterDriver, UnRegisterDriver
`
`SPI Extended Interfaces ------------
`
`IXMC_DrvExt__
`SP|_1
`(
`
`IXMC_DNExt_
`SPI_2
`C
`
`IXMC_DrvExt_
`SPl_n
`
`XMCSPI Extended Interface #1
`
`XMCSPI Extended Interface #2
`
`o
`8
`
`.
`
`XMCSPI Extended Interface #n
`
`Page 42 of 92
`
`Page 42 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 39 0f 64
`
`US 6,941,543 B1
`
`FIG. 40 Module Interaction—Map
`
`34 olUnknown
`
`
`
`
`
`pDriverlnfoMap
`
`ADMIN. CPL
`
`
`
`Inver
`
`
`
`COMPONEN
`
`
`
`pDriverlnfo
`hStream.
`
`pStream Info
`
`IXMmexxAPI 0
`
`32
`
`OlUnknown
`
`
`DRIVER
`
`ADMlN.
`
`
`
`
`
`pDWnum
`
`
`
`IlJnknown
`
`OlUnknown
`
`IXMC_
`xxxSPl
`
`DRIVER
`
`IXMC_
`UDXXXSPI
`
`
`28
`
`Page 43 of 92
`
`Page 43 of 92
`
`

`

`US. Patent
`
`Sep. 6, 2005
`
`Sheet 40 0f 64
`
`US 6,941,543 B1
`
`FIG- 41 Objectlnteraction-Map
`-
`34 OlUnknown
`
`
`DRIVER
`pDnverlnfoMap
`
`ADMIN.CPL<J— 'XMCJXXAW OMPONEN
`
`
`
`
`hDriver
`
`hDrivlr,
`
`
`
`pDrvlnfo,
`pDrvEfium
`
`hStream,
`4‘2
`OlUnkno

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket