Patent ID: 8073557

Claim:
A motion control system, comprising: an application program comprising at least one call to at least one component function; a plurality of motion controllers, where each of the motion controllers is capable of causing a motion control operation, a plurality of motion controller languages are associated with the plurality of motion controllers, each motion controller language comprises control commands, where at least one control command is capable of processing information associated with the movement of an object, and at least one of the plurality of motion controller languages is associated with at least one of the motion controllers; a set of software drivers each comprising driver code, where each software driver is associated with at least one of the plurality of motion controller languages, each software driver exposes a service provider interface comprising a set of driver functions, where the driver functions are independent of the plurality of motion controller languages, at least one driver function is an extended driver function that is associated with a non-primitive motion operation that can be performed using at least one primitive motion operation, where the at least one primitive motion operation cannot be performed using a combination of primitive or non-primitive motion operations, at least one driver function is a core driver function that is associated with a primitive motion operation, the driver code of at least one software driver associates at least one driver function with at least one control command of the at least one motion controller language associated with at least one of the software drivers, and at least one selected software driver is associated with at least one selected motion controller; a motion component comprising component code, where the motion component exposes an application programming interface comprising a set of component functions, where each component function is implemented by component code, and at least the component code is independent of the plurality of motion controller languages, and the component code associates at least one of the component functions with at least one of the driver functions; whereby the at least one selected software driver generates at least one control code from the motion controller language associated with the at least one selected motion controller based on the at least one component function called by the application program, the component code, and the driver code of the at least one selectable software driver.