IP Library Granted Patent US 9,285,801
Granted Patent B2
US 9,285,801 · App. 11/226,863 · Granted Mar 15, 2016

Automatic generation of a motion controller

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,285,801
App. No.
11/226,863
Granted
Mar 15, 2016
Kind
B2
Abstract

A method for automatically creating a customized motion controller based on user input specifying desired characteristics of the motion controller. The method may compile the program into executable code and download the executable code to a target platform, thus enabling the target platform to function as the specified customized motion controller. User input may specify characteristics of the motion controller system such as: the target platform; the configuration of motors, sensors and I/O devices to be used; the supervisory control functions to be implemented; and the target language for the motion control program.

Claims (64)

1. A computer implemented method comprising:

utilizing a computer to perform:

receiving user input specifying desired characteristics for a motion controller, wherein the desired characteristics specified by the user input include supervisory control functions and trajectory generation functions;

automatically generating a motion controller program that realizes the desired characteristics for the motion controller based on the user input, wherein said automatically generating the motion controller program comprises automatically generating program instructions implementing the supervisory control functions and the trajectory generation functions;

downloading the motion controller program to a hardware platform;

wherein the hardware platform executes the motion controller program to implement the motion controller having the desired characteristics, and wherein the motion controller program executes on the hardware platform to receive application level commands from a motion control application and generate corresponding control signals for at least one drive unit;

automatically generating an application programming interface (API) corresponding to the motion controller program, wherein the API provides a software interface to the motion controller program executing on the hardware platform for applications running on a host computer.

2. The method of claim 1 , wherein the desired characteristics specified by the user input include control loop processing functions, and wherein said automatically generating the motion controller program further comprises automatically generating program instructions implementing the control loop processing functions.

3. The method of claim 1 , further comprising:

utilizing the computer to perform:

compiling the motion controller program into executable code;

wherein said downloading comprises downloading the executable code to the hardware platform.

4. The method of claim 1 ,

wherein said automatically generating the motion controller program comprises generating the motion controller program without manual user input specifying code of the motion controller program during said automatically generating.

5. A computer-readable memory medium comprising program instructions for automatically generating a motion controller, wherein the program instructions are executable by a processor to implement:

receiving information from a user regarding characteristics of the motion controller, wherein the desired characteristics specified by the user input include supervisory control functions and trajectory generation functions;

automatically generating a motion controller program, wherein the motion controller program is executable to implement the motion controller according to said characteristics, wherein the motion controller program is automatically generated without manual user coding of the motion controller program, and wherein said automatically generating the motion controller program comprises automatically generating program instructions implementing the supervisory control functions and the trajectory generation functions, and wherein the motion controller program executes on the hardware platform to receive application level commands from a motion control application and generate corresponding control signals for at least one drive unit;

downloading executable code corresponding to the motion controller program to a target platform to configure the target platform as the motion controller

automatically generating an application programming interface (API) corresponding to the motion controller program, wherein the API provides a software interface to the motion controller program executing on the target platform for applications running on a host computer.

6. The computer-readable memory medium of claim 5 , wherein the information from the user regarding characteristics of the motion controller comprises at least one of:

type of target platform;

axes type;

motion I/O devices;

functionality; and

additional I/O devices.

7. The computer-readable memory medium of claim 5 , wherein the information from the user regarding characteristics of the motion controller comprises at least two of:

type of target platform;

axes type;

motion I/O devices;

functionality; and

additional I/O devices.

8. The computer-readable memory medium of claim 5 , wherein the information from the user regarding characteristics of the motion controller comprises:

axes type;

motion I/O devices.

9. The computer-readable memory medium of claim 5 , wherein the characteristics specified by the user further include

control loop processing functions; and

wherein said automatically generating the motion controller program comprises automatically generating program instructions implementing the control loop processing functions.

10. The computer-readable memory medium of claim 5 , wherein the target platform includes a processor and memory, wherein said downloading transfers the executable code from a host computer to the memory, wherein the processor is configured to execute the executable code from the memory.

11. The computer-readable memory medium of claim 5 , wherein the target platform includes a field programmable gate array (FPGA), wherein at least a portion of the executable code is downloaded to the FPGA.

12. The computer-readable memory medium of claim 5 , wherein the motion controller program is a graphical program that comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

13. A method comprising:

receiving user input specifying requirements for a motion control program, wherein the requirements specified by the user input include supervisory control functions and trajectory generation functions;

automatically creating a customized motion control program based on the user input, wherein the customized motion control program is executable to fulfill the requirements, wherein said automatically creating the customized motion control program comprises automatically generating program instructions implementing the supervisory control functions and the trajectory generation functions;

downloading executable code corresponding to the customized motion control program to a target platform;

executing the executable code on the target platform, wherein the target platform operates as a motion controller by executing the executable code, and wherein the executable code executes on the hardware platform to receive application level commands from a motion control application and generate corresponding control signals for at least one drive unit;

automatically generating an application programming interface (API) corresponding to the motion controller program, wherein the API provides a software interface to the motion controller program executing on the target platform for applications running on a host computer.

14. A system for creating a custom motion controller, the system comprising:

a controller platform; and

a host computer coupled to the controller platform, wherein the host computer is operable to:

receive user input specifying desired functionality of the motion controller, wherein the desired functionality specified by the user input includes supervisory control functions and trajectory generation functions;

automatically generate a motion controller program to implement the motion controller based on the user input specifying the desired functionality of the motion controller, wherein said automatically generating the motion controller program comprises automatically generating program instructions implementing the supervisory control functions and the trajectory generation functions;

create executable code corresponding to the motion controller program; and

download the executable code corresponding to the motion controller program to the controller platform, wherein the controller platform operates as the motion controller by executing the executable code, and wherein the executable code executes on the controller platform to receive application level commands from a motion control application and generate corresponding control signals for at least one drive unit;

automatically generate an application programming interface (API) corresponding to the motion controller program, wherein the API provides a software interface to the motion controller program executing on the controller platform for applications running on a host computer.

15. The system of claim 14 , further comprising:

one or more drive units and one or more input or output devices connected to the controller platform;

one or more motors connected to the one or more drive units; and

one or more sensors connected to the controller platform and the one or more drive units;

wherein characteristics of the controller platform, each drive unit, each motor, and each sensor are specified by user input to the host computer.

16. The system of claim 14 , wherein the user input further specifies control loop processing functions, and wherein to automatically generate the motion controller program, the program instructions are further executable to automatically generate program instructions implementing the control loop processing functions.

17. The method of claim 1 , wherein the motion controller program is a graphical program that comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

18. The method of claim 13 , wherein the motion control program is a graphical program that comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

19. The system of claim 14 , wherein the motion controller program is a graphical program that comprises a plurality of interconnected nodes that visually indicate functionality of the graphical program.

20. The computer-readable memory medium of claim 5 , wherein the implemented supervisory control functions comprise system initialization, event handling, and fault detection.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →