Motion control systems
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-modified1 - 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.