CA2586401A1 - Motion control systems - Google Patents
Motion control systemsInfo
- Publication number
- CA2586401A1 CA2586401A1 CA002586401A CA2586401A CA2586401A1 CA 2586401 A1 CA2586401 A1 CA 2586401A1 CA 002586401 A CA002586401 A CA 002586401A CA 2586401 A CA2586401 A CA 2586401A CA 2586401 A1 CA2586401 A1 CA 2586401A1
- Authority
- CA
- Canada
- Prior art keywords
- motion
- recited
- software
- primitive
- driver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
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.
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 (18)
1. ~A system for communicating with a motion control device capable of executing at least one motion command, comprising:
a set of motion commands, where the set of motion commands comprises primitive motion commands and non-primitive motion commands, wherein functionality of the non-primitive motion commands can be emulated by a combination of primitive motion commands, and functionality of the primitive motion commands cannot be emulated by a combination of primitive motion commands;
a set of motion operations, where at least one motion operation is associated with at least one motion command;
a set of selectable software modules, where at least one software module is associated with at least one motion control device, and at least two selectable software modules expose a common software interface; and a software system that commands at least one motion control device to perform at least one motion operation based on at least one motion command using the common software interface exposed by at least one selected software module associated with at least one motion control device.
a set of motion commands, where the set of motion commands comprises primitive motion commands and non-primitive motion commands, wherein functionality of the non-primitive motion commands can be emulated by a combination of primitive motion commands, and functionality of the primitive motion commands cannot be emulated by a combination of primitive motion commands;
a set of motion operations, where at least one motion operation is associated with at least one motion command;
a set of selectable software modules, where at least one software module is associated with at least one motion control device, and at least two selectable software modules expose a common software interface; and a software system that commands at least one motion control device to perform at least one motion operation based on at least one motion command using the common software interface exposed by at least one selected software module associated with at least one motion control device.
2. ~A system as recited in claim 1, in which a definition of the common software interface is programmatically acquirable.
3. ~A system as recited in claim 1, in which a definition of the common software interface is acquirable from at least one of the selectable software modules in the set of selectable software modules.
4. ~A system as recited in claim 1, further comprising an operating system on which the software module is run.
5. ~A system as recited in claim 4, in which a definition of the common software interface is acquirable from the operating system.
6. ~A system as recited in claim 1, in which a definition of the common software interface is acquirable from a persisted storage medium.
7. ~A system as recited in claim 6, in which the persisted storage medium is a disk file.
8. ~A system as recited in claim 1, in which at least one motion operation causes data to be read from the motion control device.
9. ~A system as recited in claim 1, in which at least one motion operation causes data to be received from the motion control device.
10. ~A system as recited in claim 1, in which at least one motion operation causes motion data to be written to the motion control device.
11. ~A system as recited in claim 1, in which at least one motion operation causes an object to move.
12. ~A system as recited in claim 1, in which at least one primitive motion operation causes a motion control device to move.
13. ~A system as recited in claim 1, in which the software system further comprises a user interface for selecting at least one selectable software module.
14. ~A system as recited in claim 1, in which the software system further comprises software functionality that programmatically selects at least one selectable software module.
15~A system as recited in claim 1, further comprising a selection software module comprising a user interface that allows at least one selectable software module to be selected.
16. ~A system as recited in claim 1, further comprising a selection software module comprising software functionality that programmatically selects at least one selectable software module.
17. ~A system as recited in claim 1, in which the motion operations comprise primitive motion operations and non-primitive motion operations, wherein:
functionality of the non-primitive motion operations can be emulated by a combination of primitive motion operations;
functionality of the primitive motion operations cannot be emulated by a combination of primitive motion operations;
each non-primitive motion operation is associated with at least one non-primitive motion command; and each primitive motion operation is associated with at least one primitive motion command.
functionality of the non-primitive motion operations can be emulated by a combination of primitive motion operations;
functionality of the primitive motion operations cannot be emulated by a combination of primitive motion operations;
each non-primitive motion operation is associated with at least one non-primitive motion command; and each primitive motion operation is associated with at least one primitive motion command.
18. ~A method of generating a software driver for allowing a software system to control a hardware system to perform a desired operation based on an application program defining the desired operation, the method comprising the steps of:
defining at least one driver function for implementing the desired operation;
defining a command format template and a response format template for each driver function;
generating command data strings based on the command format template and the application program; and parsing response data strings based on the response format template and the application program.
defining at least one driver function for implementing the desired operation;
defining a command format template and a response format template for each driver function;
generating command data strings based on the command format template and the application program; and parsing response data strings based on the response format template and the application program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2705404A CA2705404A1 (en) | 1995-05-30 | 1996-05-30 | Motion control systems |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/454,736 | 1995-05-30 | ||
US08/454,736 US5691897A (en) | 1995-05-30 | 1995-05-30 | Motion control systems |
CA002222235A CA2222235C (en) | 1995-05-30 | 1996-05-30 | Motion control systems |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002222235A Division CA2222235C (en) | 1995-05-30 | 1996-05-30 | Motion control systems |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2705404A Division CA2705404A1 (en) | 1995-05-30 | 1996-05-30 | Motion control systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2586401A1 true CA2586401A1 (en) | 1996-12-05 |
CA2586401C CA2586401C (en) | 2010-07-13 |
Family
ID=38319528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2586401A Expired - Lifetime CA2586401C (en) | 1995-05-30 | 1996-05-30 | Motion control systems |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA2586401C (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110728479A (en) * | 2019-10-12 | 2020-01-24 | 珠海格力智能装备有限公司 | Robot control method and device |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060206219A1 (en) | 1995-05-30 | 2006-09-14 | Brown David W | Motion control systems and methods |
US5691897A (en) | 1995-05-30 | 1997-11-25 | Roy-G-Biv Corporation | Motion control systems |
US20010032278A1 (en) | 1997-10-07 | 2001-10-18 | Brown Stephen J. | Remote generation and distribution of command programs for programmable devices |
US7904194B2 (en) | 2001-02-09 | 2011-03-08 | Roy-G-Biv Corporation | Event management systems and methods for motion control systems |
US20060064503A1 (en) | 2003-09-25 | 2006-03-23 | Brown David W | Data routing systems and methods |
US8027349B2 (en) | 2003-09-25 | 2011-09-27 | Roy-G-Biv Corporation | Database event driven motion systems |
-
1996
- 1996-05-30 CA CA2586401A patent/CA2586401C/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110728479A (en) * | 2019-10-12 | 2020-01-24 | 珠海格力智能装备有限公司 | Robot control method and device |
Also Published As
Publication number | Publication date |
---|---|
CA2586401C (en) | 2010-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2222235A1 (en) | Motion control systems | |
US5901319A (en) | System and methods for generating operating system specific kernel level code from operating system independent data structures | |
US4509122A (en) | Method for controlling the file transfer capability of an interactive text processing system that is emulating a host processing system terminal | |
CA1313418C (en) | User interface with system and method for specifying same | |
CA2586401A1 (en) | Motion control systems | |
US6928641B1 (en) | Method and system for far branch and call instructions | |
JPH04245545A (en) | Method of constituting multi-user virtual computer system and multi-user virtual computer system | |
KR100514705B1 (en) | Macro generation control system based on recording response | |
CN110471659A (en) | Multilingual method and system, human-machine interface configuration software end and equipment end | |
EP0569902A2 (en) | User interface system for computers | |
JPH02206817A (en) | Terminal emulator | |
US6195708B1 (en) | Computer system where giving and receiving a data between programs are controlled | |
JPH06342351A (en) | Entry-field display method | |
KR100907664B1 (en) | Remote document editing device and method | |
US6631376B1 (en) | Exchange servicing development support system with a function of automatic replacement of edited contents | |
JPS6139134A (en) | Program converting method | |
JPH087600Y2 (en) | PROM programmer | |
JPH04220724A (en) | Precompiling processing system | |
JP2908003B2 (en) | Controlled program evaluation system | |
JPH0715661B2 (en) | Message text assembly / edit control method | |
JPH0212318A (en) | User interface preparing system | |
Ferreira et al. | CAD by features systems applied to an industrial reality | |
Fulbright | Moses: An Automatic Code Generation Tool for Client-Server Applications Written in GENISAS | |
JPH1165857A (en) | Macro execution system and storage medium where macro execution program is recorded | |
Holmes | A barely intelligent terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKEX | Expiry |
Effective date: 20160530 |