US2008275576A1PendingUtilityA1

Motion control systems

42
Assignee: BROWN DAVID WPriority: May 30, 1995Filed: Dec 10, 2002Published: Nov 6, 2008
Est. expiryMay 30, 2015(expired)· nominal 20-yr term from priority
G05B 2219/43167G05B 2219/23265G05B 2219/34216G05B 2219/34287G05B 19/416G05B 2219/36035G05B 2219/34208G05B 19/19G05B 2219/23262G05B 2219/36037Y02P90/02G05B 2219/34263G05B 2219/36036
42
PatentIndex Score
0
Cited by
0
References
0
Claims

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 comprises a software system that employs an application programming 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 product. 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 functions. 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 combination 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.

Claims

exact text as granted — not AI-modified
1 - 157 . (canceled) 
   
   
       158 . (canceled) 
   
   
       159 . A system for exchanging data with at least one motion control device, comprising:
 a set of motion data items, where each motion data item is either
 a primitive data item which is stored on a motion control device and cannot be emulated by using the value of at least one other motion data item, or 
 a non-primitive data item that does not meet the definition of a primitive data item; 
   a motion control device capable of storing at least one motion data item;   a set of selectable first software modules, where each selectable first software module
 is associated with at least one motion control device, 
 is capable of communicating with at least one associated motion control device, and 
 exposes a first interface, where the first interface
 is associated with a first identifier used to acquire the first interface, 
 is capable of being used while communicating across software processes, and 
 contains at least one program element that is associated with at least one motion data item, where 
 
 at least one selected first module is selected from the set of selectable first modules and configured to exchange data with at least one motion control device; 
   a second module, where the second module
 exposes a second interface, where the second interface
 is associated with a second identifier used to acquire the second interface, 
 is capable of being used while communicating across software processes, and 
 contains at least one program element that is associated with at least one motion data item, 
 
 uses the first interface to exchange at least one motion data item with the at least one selected first module; and 
   a third module that uses the second interface exposed by the second module to communicate at least one primitive motion data item or at least one non-primitive motion data item with the second module.   
   
   
       160 . A system as recited in  claim 159 , in which the definition of the first interface exposed by the at least one selected first module is acquirable. 
   
   
       161 . A system as recited in  claim 160 , further comprising an operating system, where the definition of the first interface is acquirable from the operating system. 
   
   
       162 . A system as recited in  claim 160 , in which the definition of the first interface is acquirable from the at least one selected first module. 
   
   
       163 . A system as recited in  claim 159 , in which the first and second interfaces are the same. 
   
   
       164 . A system as recited in  claim 159 , further comprising a network system, where the third module and the second module are capable of communicating across the network system using the second interface. 
   
   
       165 . A system as recited in  claim 164 , in which the first and second interfaces differ. 
   
   
       166 . A system as recited in  claim 164 , further comprising a network system, in which the second module and the at least one selected first module are capable of communicating across the network system using the first interface. 
   
   
       167 . A system as recited in  claim 164 , further comprising a network system, in which the third module and the second module are capable of communicating with each other using the second interface across the network system and the second module and the at least one selected first module are capable of communicating with each other across the network system using the first interface. 
   
   
       168 . A system as recited in  claim 159 , in which at least one program element within the first interface is comprised of a function. 
   
   
       169 . A system as recited in  claim 159 , in which at least one program element within the first interface is comprised of a parameter. 
   
   
       170 . A system as recited in  claim 159 , in which at least one selectable first module is capable of exchanging data with at least one motion control device and causing at least one motion data item to be read from the motion control device. 
   
   
       171 . A system as recited in  claim 159 , in which at least one selectable first module is capable of exchanging data with at least one motion control device and causing at least one motion data item to be written to at least one motion control device. 
   
   
       172 . A system as recited in  claim 159 , in which at least one selectable first module is capable of exchanging data with at least one motion control device and causing the motion control device to move an object. 
   
   
       173 . A system as recited in  claim 159 , in which at least one selectable first module is capable of exchanging data with at least one motion control device and causing the motion control device to move. 
   
   
       174 . A system as recited in  claim 159 , in which at least one selectable first module is selectable using a user interface. 
   
   
       175 . A system as recited in  claim 159 , in which at least one selectable first module is programmatically selectable. 
   
   
       176 . A system as recited in  claim 159 , in which at least one selectable first module is a software component. 
   
   
       177 . A system as recited in  claim 159 , in which the second module is a software component. 
   
   
       178 . A system as recited in  claim 159 , in which the second module is an application. 
   
   
       179 . A system as recited in  claim 159 , in which the third module is an application. 
   
   
       180 . A system for exchanging data with at least one motion control device, comprising:
 a set of motion data items;   a motion control device capable of storing at least one motion data item;   a set of selectable first modules, where the selectable first modules
 are each associated with at least one motion control device, 
 are each capable of communicating with at least one associated motion control device, and 
 each exposes a first interface, where the first interface
 is associated with a first identifier used to acquire the first interface, 
 is capable of communicating across software processes, and 
 contains at least one program element that is associated with at least one motion data item, where 
 
 at least one selected first module is selected from the set of selectable first modules and configured to exchange data with at least one motion control device; 
   a second module, where the second module
 exposes a second interface that:
 is associated with a second identifier used to acquire the second interface, 
 is capable of communicating across software processes, and 
 contains at least one program element that is associated with at least one motion data item, and 
 
 uses the first interface to communicate at least one motion data item with at least one selectable first module; and 
   a third module that uses the second interface to exchange at lease one data item with the second module.   
   
   
       181 . A system as recited in  claim 180 , in which the definition of the first interface is acquirable. 
   
   
       182 . A system as recited in  claim 181 , in which the first and second interfaces are the same. 
   
   
       183 . A system as recited in  claim 181 , further comprising an operating system, where the definition of the first interface is acquirable from the operating system. 
   
   
       184 . A system as recited in  claim 181 , further comprising an operating system, where the definition of the first interface is acquirable from the at least one selected first module. 
   
   
       185 . A system as recited in  claim 180 , in which the first and second interfaces differ. 
   
   
       186 . A system as recited in  claim 185 , further comprising a network system, where the third module and the second module are capable of communicating with each other across the network system using the second interface. 
   
   
       187 . A system as recited in  claim 185 , further comprising a network system, where the second module and the at least one selected first module are capable of communicating with each other across the network system using the first interface. 
   
   
       188 . A system as recited in  claim 185 , further comprising a network system, where
 the third module and the second module are capable of communicating with each other across the network system using the second interface; and   the second module and the at least one selected first module are capable of communicating with each other across the network system using the first interface.   
   
   
       189 . A system as recited in  claim 185 , in which each motion data item is either a primitive data item which is stored on a motion control device and cannot be created by using a value of at least one other motion data item, or a non-primitive data item that does not meet the definition of a primitive data item. 
   
   
       190 . A system as recited in  claim 189 , in which the third module uses the second interface to exchange at least one primitive motion data item and at least one non-primitive motion data item with the second module. 
   
   
       191 . A system as recited in  claim 189 , in which the third module uses the second interface exposed by the second module to exchange at least one primitive motion data item with the second module. 
   
   
       192 . A system as recited in  claim 189 , in which the third module uses the second interface to exchange at least one non-primitive motion data item with the second module. 
   
   
       193 . A system as recited in  claim 185 , in which at least one program element within the first interface is comprised of a function. 
   
   
       194 . A system as recited in  claim 185 , in which at least one program element within the first interface is comprised of a parameter. 
   
   
       195 . A system as recited in  claim 185 , in which at least one program element within the first interface is comprised of a variable. 
   
   
       196 . A system as recited in  claim 180 , in which the at least one selected first module is capable of causing at least one motion data item to be read from at least one motion control device. 
   
   
       197 . A system as recited in  claim 180 , in which the at least one selected first module is capable of causing at least one motion data item to be written to at least one motion control device. 
   
   
       198 . A system as recited in  claim 180 , in which the at least one selected first module is capable of exchanging at least one motion data item with at least one motion control device to cause the motion control device to move an object. 
   
   
       199 . A system as recited in  claim 180 , in which the at least one selected first module is capable of exchanging at least one motion data item with at least one motion control device to cause the motion control device to move. 
   
   
       200 . A system as recited in  claim 180 , in which at least one selectable first module is selectable using a user interface. 
   
   
       201 . A system as recited in  claim 180 , in which at least one selectable first module is programmatically selectable. 
   
   
       202 . A system as recited in  claim 180 , in which at least one selectable first module is a server component. 
   
   
       203 . A system as recited in  claim 180 , in which the second module is a server component. 
   
   
       204 . A system as recited in  claim 180 , in which the second module is an application. 
   
   
       205 . A system as recited in  claim 180 , in which the third module is an application. 
   
   
       206 . A system for exchanging data with at least one motion control device, comprising:
 a set of motion data items;   a motion control device capable of storing at least one motion data item;   a set of selectable first modules, where each selectable first module
 is associated with at least one motion control device, 
 is capable of communicating with at least one associated motion control device, and 
 exposes a first interface, where the first interface
 is associated with a first identifier that allows the first interface to be acquired, 
 employs a replaceable proxy stub to communicate across software processes over a network without changing any of the selectable first modules that expose the first interface, and 
 contains at least one program element that is associated with at least one motion data item, where 
 
 at least one selected first module is selected from the set of selectable first modules and configured to communicate with at least one motion control device; 
   a second module configured to communicate with the at least one selected first module using the first interface to exchange at least one motion data item between the second module and the at least one selected first module;   a third module configured to communicate with the second module to exchange at least one motion data item with the second module.   
   
   
       207 . A system as recited in  claim 206 , in which a definition of the first interface is acquirable. 
   
   
       208 . A system as recited in  claim 207 , further comprising an operating system, where a definition of the first interface is acquirable from the operating system. 
   
   
       209 . A system as recited in  claim 207 , in which a definition of the first interface is acquirable from the at least one selected first module. 
   
   
       210 . A system as recited in  claim 206 , further comprising a network system, where the third module and the second module are capable of communicating with each other across the network system using a second interface exposed by the second module. 
   
   
       211 . A system as recited in  claim 210 , in which the first and second interfaces are the same. 
   
   
       212 . A system as recited in  claim 210 , in which the first and second interfaces differ. 
   
   
       213 . A system as recited in  claim 206 , further comprising a network system, where the second module and the at least one selected first module are capable of communicating with each other across the network system using the first interface. 
   
   
       214 . A system as recited in  claim 206 , further comprising a network system, where the third module and the second module are capable of communicating with each other across the network system using the second interface and the second module and the selectable first module are capable of communicating with each other across the network system using the first interface. 
   
   
       215 . A system as recited in  claim 206 , in which each motion data item is either
 a primitive data item which is stored on a motion control device and cannot be emulated by using a value of at least one other motion data item; or   a non-primitive data item that does not meet the definition of a primitive data item.   
   
   
       216 . A system as recited in  claim 215 , in which the third module uses the second interface to exchange at least one primitive motion data item and at least one non-primitive motion data item with the second module. 
   
   
       217 . A system as recited in  claim 215 , in which the third module uses the second interface to exchange at least one primitive motion data item with the second module. 
   
   
       218 . A system as recited in  claim 215 , in which the third module uses the second interface to exchange at least one non-primitive motion data item with the second module. 
   
   
       219 . A system as recited in  claim 206 , in which at least one program element is a function. 
   
   
       220 . A system as recited in  claim 206 , in which at least one program element is a parameter. 
   
   
       221 . A system as recited in  claim 206 , in which at least one program element is a variable. 
   
   
       222 . A system as recited in  claim 206 , in which the at least one selected first module is capable of causing at least one motion data item to be read from at least one motion control device. 
   
   
       223 . A system as recited in  claim 206 , in which the at least one selected first module is capable of causing at least one motion data item to be written to at least one motion control device. 
   
   
       224 . A system as recited in  claim 206 , in which the at least one selected first module is capable of causing at least one motion control device to move an object. 
   
   
       225 . A system as recited in  claim 206 , in which the at least one selected first module is capable of causing at least one motion control device to move. 
   
   
       226 . A system as recited in  claim 206 , in which at least one first selectable module is selectable using a user interface. 
   
   
       227 . A system as recited in  claim 206 , in which at least one selectable first module is programmatically selectable. 
   
   
       228 . A system as recited in  claim 206 , in which at least one selectable first module is a server component. 
   
   
       229 . A system as recited in  claim 206 , in which the second module is a server component. 
   
   
       230 . A system as recited in  claim 206 , in which the second module is an application. 
   
   
       231 . A system as recited in  claim 206 , in which the third module is an application.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.